String UpdateResource

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:

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);
        }
    }
}
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?
 
Zuletzt bearbeitet:
So, Teilproblem gelöst.
Er schreibt was in die Resource, aber ein leeres Value. Jetzt meine Frage, ich möcht gern wissen, wie ich ein string umwandeln muss, sodass er auch dann in der Resource steht.
 
Zurück