Изменение строки в ресурсе exe
Как мне изменитьbuffer
в следующем коде затем сохранить изменения в ресурсе исполняемого файла? Я'ищу что то подобное.SetString(handle,index,buffer,size)
var
hExe : Cardinal;
buffer : array [0..4097] of ansichar;
begin
hExe:=LoadLibraryEx(PAnsiChar(Edit2.Text),0,LOAD_LIBRARY_AS_DATAFILE);
LoadString(hExe,65300,buffer,SizeOf(buffer));
ShowMessage(buffer);
//need to modify buffer here then I'll unload the resources..
end;
Обновить: Вот'моя попытка на UpdateResource
var
hEXE: DWORD;
pData: PAnsiChar;
begin
pData := PAnsiChar(Edit1.Text);
hEXE := BeginUpdateResource(pchar(edit2.text), FALSE);
if hEXE 0 then
begin
UpdateResource(hEXE, RT_string, MAKEINTRESOURCE(4082), LANG_NEUTRAL,
@pData, Length(pData)); //if i change 4082 to 65300 it creates another key like 4082
EndUpdateResource(hEXE, FALSE);
end;
Этот код испортил весь контент 4082. Проблема в том, что элемент с именем 4082 в RT_STRING является группой строк. Когда я открываю исполняемый файл в редакторе ресурсов, нажимаю строку с таблицей, затем 4082 результат:
STRINGTABLE
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
65296, "Unicode"
65297, "Big Endian Unicode"
65298, "UTF-8"
65299, "UTF-7"
65300, "ABCDE12345"
}
Поэтому мне либо нужно проанализировать группу строк, либо мне нужен API для установки строки модификации с индексом 65300 в группе. Есть идеи? Я