SCIPIO-AEMILIANUS
aka Dubdidadu
So, seit langem mal wieder mit C++ unterwegs und auf folgendes Problem gestoßen.
Ich hab eine Exe mit einer String Tabelle in der Resource. Auslesen klappt auch wunderbar. Mein Problem ist jetzt, wenn ich diese Werte Updaten will.
Ich hab selber länger rumgetüftelt und auch noch fast ne Stunde rumgegooglet und die gefundenen Codeschnipsel hatten den selben Erfolg:
UpdateResource liefert mir ein true zurück, was eigentlich heißen dürfte das es geklappt hat, tut es nur irgendwie nicht. Kann mir einer verraten wo der Fehler ist?
Ich hab eine Exe mit einer String Tabelle in der Resource. Auslesen klappt auch wunderbar. Mein Problem ist jetzt, wenn ich diese Werte Updaten will.
Ich hab selber länger rumgetüftelt und auch noch fast ne Stunde rumgegooglet und die gefundenen Codeschnipsel hatten den selben Erfolg:
Code:
HANDLE hResource;
HANDLE hResource;
hResource = BeginUpdateResource("bla.exe", FALSE);
char szContentStr[256]="HALLO";
int nStrLen = strlen(szContentStr);
DWORD dwResSize = (nStrLen + 2) * sizeof(WCHAR);
//prepare the string resources block
LPVOID pRes = malloc(dwResSize);
if (pRes != NULL)
{
WCHAR* pResChar = (WCHAR*)pRes;
*pResChar++ = nStrLen;
for (int i = 0; i < nStrLen; i++)
{
*pResChar++ = szContentStr[i];
}
if (NULL != hResource)
{
if (UpdateResource(hResource,
RT_STRING,
MAKEINTRESOURCE(IDS_STRING1),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPVOID)pRes,
dwResSize) != FALSE)
{
cout<<"ERFOLGREICH";
EndUpdateResource(hResource, FALSE);
}
}
}
Zuletzt bearbeitet: