No własnie problem ciekawi, może Deti jeszcze czytuje forum na bieżąco i Tobie odpowie, bo takie coś jak tu
poniżej zadziała i tekst doda się do zasobów, program się uruchamia, ale jak to wykorzystać. bo skoro był te
dwa posty wyżej podany sposób z ResourceStreamem. A później widać, ze Updateowany zasób ma zawierać
całą pamięć zasobu to nic innego mi nie przychodzi mi do głowy jak zrobić to tak jak poniżej, tylko czy da się
wtedy jakoś ten zmodyfikowany zasób wykorzystać - tego nie wiem. Nigdy nie kombinowałem w ten sposób.
Najpierw tworzymu plik test.rc o takiej zawartośći:
test RCDATA "aaa.txt"
Poźniej tworzymy plik aaa.txt o takiej zawartości:
Jakiś unikalny tekst
Kombpilujemy test.rc przy użyciu brcc32.exe
i w naszym programie budujemy cały projekt w postaci tego kodu. Oczywiście plik D:\test.exe musi istnieć:
{$R test.res}
var
hUpdateRes : THandle;
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'test', RT_RCDATA);
hUpdateRes := BeginUpdateResource(PCHAR('D:\test.exe'), False);
UpdateResource(hUpdateRes, RT_STRING, 'stala_odwolujaca_sie_do_zasobu', LANG_NEUTRAL, Res.Memory, Res.Size);
EndUpdateResource(hUpdateRes, False);
end;
W wyniku czego w naszym pliku D:\test.exe znajdziemy ten string później podglądając go jakimś edytorem,
ktory wyświetli jego zawartość na przykład tym z FAR'a albo Listerem z TotalCommandera albo innym, ale w
sumie nie wiem co taka modyfikacja nam da. I nie wiem na co zmienić "stala_odwolujaca_sie_do_zasobu" ;/
Googlowałem też za funkcją LoadString ale ona wykorzystuje StringTable w zasobie *.rc i zwraca typ integer.
EDIT: ponieważ szukając informacji o stringtablesach w google znajduje się ten wątek. Dodam że jakby ktoś
nadal miał problemy to rozpisałem się na http://4programmers.net/Forum/viewtopic.php?id=154836&start=10
i tam podaje przykładowe kody. Może przynajmniej Polacy szukający informacji na ten temat sobie poradzą :)