000
10.07.2012, 13:07 Uhr
~-Capris-
Gast
|
Hallo,
ich möchte einen Resource String in einer Dll ändern. Habe mich ein bisschen schlau gemacht und gefunden, dass man dazu die Funktion UpdateResource verwenden kann. Leider funktioniert es bei mir trotzdem nicht.
Also, die Frage ist, wie macht man das am einfachsten?
Hier mein Code:
C++: |
BOOL SetResourceFile(LPCTSTR szSSPath, LPCTSTR szSSName) { //HRSRC hResLoad; HMODULE hExe; HRSRC hRes; HANDLE hUpdateRes; CString myTest = _T("myTest"); //char *lpResLock; BOOL result;
// funktioniert hExe = LoadLibrary(szSSPath); // funktioniert NICHT (NULL) hRes = FindResource(hExe, (LPCWSTR)"IDS_TEST", RT_STRING);
// Open the file to which you want to add the dialog box resource. // OK hUpdateRes = BeginUpdateResource(szSSPath, FALSE); //auf diese Weise kann auch auf den String zugreifen (IDS_TEST = 43142) CString myStr; myStr.LoadString(hExe, 46142);
// hier ist der result == 1, aber verändert hat sich trotzdem nichts result = UpdateResource(hUpdateRes, RT_STRING, (LPCWSTR)"IDS_TEST", MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN), &myTest, myTest.GetAllocLength()); // Write changes and then close it. EndUpdateResource(hUpdateRes, FALSE);
return false; }
|
Ich denke, ich habe so ziemlich alles Mögliche falsch gemacht. Deswegen wäre ich für eure Hilfe sehr dankbar! |