A string table looks as follows:
STRINGTABLE { 1, "hello World !"
2, "hello world again !" 3, "last hello world !" } |
You can compile this (we assume the le is called tests.rc) as follows:
windres -i tests.rc -o tests.res
|
And this is the way to retrieve the strings from your program:
program tests;
{$mode objfpc} Uses Windows; {$R *.res} Function LoadResourceString (Index : longint): Shortstring; begin SetLength(Result,LoadString(FindResource(0,Nil,RT_STRING),Index,@Result[1],SizeOf(Result))) end; Var I: longint; begin For i:=1 to 3 do Writeln (Loadresourcestring(I)); end. |
The call to FindResource searches for the stringtable in the compiled-in resources. The LoadString function then reads the string with index i out of the table, and puts it in a bu er, which can then be used. Both calls are in the windows unit.