Проблемы нет ! - алокаю буфер 4 кб - получаю строку, если полученная строка 4 кб - умножаю размер на 2, алокаю и опять пытаюсь получить (и так пока строка не будет меньше буфера) - вообщем работает, но схема убогая... Быть может кто знает, как можно легко узнать длину строки в ресухсах ? Перерывать вручную весь PE как-то не очень хочется, быть может есть способы попроще ?) p.s. поиском по форуму пользовался.
не, фигня не прокатит, потому что: http://www.rsdn.ru/article/ui/multilang.xml - там внизу про строки.
На ObjectPascal'e (на C также) Код (Text): // ANSI version Buffer: PChar; SizeOfStr: DWORD; // Get Size of uID String + terminating null character GetMem(Buffer, $FFFF); SizeOfStr:=LoadStringA(hInstance, uID, Buffer, $FFFF)+1; FreeMem(Buffer); // Read uID String into Buffer GetMem(Buffer, SizeOfStr); LoadStringA(hInstance, uID, Buffer, SizeOfStr); // // uses String // FreeMem(Buffer); // Unicode version Buffer: PWChar; SizeOfStr: DWORD; // Get Size of uID String + terminating null character GetMem(Buffer, $FFFF); SizeOfStr:=LoadStringW(hInstance, uID, Buffer, $FFFF)*2+2; FreeMem(Buffer); // Read uID String into Buffer GetMem(Buffer, SizeOfStr); LoadStringW(hInstance, uID, Buffer, SizeOfStr); // // uses String // FreeMem(Buffer);