![]() |
Mit UpdateResource mehrere Strings schreiben...
Hallo!
Wie muss ich die Parameter für UpdateResource gestalten, damit ich mehrere Strings in die Resource schreiben kann? Folgender Code funktioniert wunderbar für einen einzelnen String:
Delphi-Quellcode:
Nur wie müssen Parameter für mehrere Strings gestaltet werden? Das ist nämlich recht blöde geregelt, da Strings als Resourcen immer in Gruppen von bis zu 16 Stück gespeichert sind...
function TAnimalSelectionForm.WriteDataToExe: boolean;
var hExeFile: THandle; sBuffer: WideString; pResourceID: PChar; iDataSize: word; begin pResourceID := MakeIntResource(CONST_RESOURCE_NAME_INDEX); // Im Buffer ist das erste Zeichen die Länge des Strings, // gefolgt vom eigentlichen String (Unicode) sBuffer := Chr(Length(sValue)) + sValue; // Fragt mich nicht, warum die Größe so bestimmt wird, // aber es ist so. iDataSize := Length(sBuffer) *2 +1; hExeFile := BeginUpdateResource(PChar(sExeFileName), false); if hExeFile <> 0 then begin try Result := UpdateResource(hExeFile, RT_STRING, pResourceID, LANG_NEUTRAL, PWideChar(sBuffer), iDataSize); if not Result then MessageDlg(RES_ERR_COUND_NOT_WRITE, mtError, [mbOK], 0); finally end; end else Result := false; EndUpdateResource(hExeFile, false); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz