Löschen eines registry-key rekursiv
Brauche ich zum entfernen einer Unterstruktur, die in der Windows-registry unter Windows Mobile 6. Die RegDeleteTree Funktion ist nicht verfügbar, und SHDeleteKey ist (scheinbar) nicht in irgendwelche statischen Bibliothek unter WM6 SDK, wenn die Erklärung steht in setzt.h.
Ich habe versucht, um es aus shlwapi.dll wie
typedef DWORD (__stdcall *SHDeleteKey_Proc) (HKEY, LPCWSTR);
SHDeleteKey_Proc procSHDeleteKey;
HINSTANCE shlwapidll = ::LoadLibrary(_T("shlwapi.dll"));
if(shlwapidll) {
procSHDeleteKey =
(SHDeleteKey_Proc)GetProcAddress(shlwapidll,_T("SHDeleteKeyW"));
ASSERT(procSHDeleteKey);
}
Aber traf ich die geltend machen.
Ist es ein schöner Weg, um zu löschen, rekursiv, einen Registry-Schlüssel (leer oder nicht) unter Windows Mobile?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, ich fand die Antwort selbst in MSDN. Es wundert mich, dass die Funktionalität nicht zur Verfügung, das über das SDK, wenn...
Ich den code von der MSDN-Website als auch hier, just for the record:
Das zweite argument von
GetProcAddress
ist einLPCSTR
(das heißt, es ist nicht eineLPCTSTR
). So entfernen Sie die_T()
und versuchen, diese:Hilft das das problem zu lösen?
Du suchst die RegDeleteTree () - Funktion. Ersetzen Sie einfach RegDeleteKey mit ihm.
Offensichtlich, es dauerte eine Weile, um es herauszufinden, also, wenn Sie wollen, um Unterstützung für XP oder älter, Sie müssen Ihre eigene Implementierung davon.