const wchar_t* nicht kompatibel mit LPCSTR
-
Hallo,
Ich will Registry Werte ändern und auslesen, was für ein Typ Variable brauche ich um REG_SZ, DWORD etc. zu definieren? Ich konnte ihn bisher nicht zufriedenstellen.
dwType <<<>>>
LONG SetRegValue(); LONG SetRegValue ( const LPCSTR path, const LPCSTR name, dwType <<<>>>, const wchar_t* value ) { LONG status; HKEY hKey; status = RegOpenKeyEx(HKEY_LOCAL_MACHINE, path, 0, KEY_ALL_ACCESS, &hKey); if ((status == ERROR_SUCCESS) && (hKey != NULL)) { status = RegSetValueEx(hKey, name, 0, <<<>>>, (BYTE*)value, ((DWORD)wcslen(value) + 1)*sizeof(wchar_t)); RegCloseKey(hKey); } return status; }
Danke.
-
vorherige probleme gelöst. Titel passt nicht mehr zum Inhalt sry.
"Variable für Wert/Schlüssel" ist vielleicht besser.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Erstmal: MSDN - https://msdn.microsoft.com/en-us/library/windows/desktop/ms724884(v=vs.85).aspx
Spezifischer:
REG_SZ
A null-terminated string. This will be either a Unicode or an ANSI string, depending on whether you use the Unicode or ANSI functions.
RegSetValueExW (Unicode) and RegSetValueExA (ANSI)
RegSetValueEx ist ein Alias für die Einstellung deines Projektes. Also einer von beiden. Wenn es kracht also vermutlich RegSetValueExA.Notiz: Muss es ein wchar_t string sein? Musst nur du mit deiner Software drauf zugreifen?
Vielleicht einfach REG_BINARY verwenden.[Persönliche Information: Ich vermeide wchar_t und encoding und ich sind im ewigen Krieg.]
EDIT: "((DWORD)wcslen(value) + 1)*sizeof(wchar_t)" sieht irgendwie verdächtig aus. Bin gerade leider zu alkoholisiert um das mal kurz durchzutesten. Kopfcompiler ist im Urlaub