Hilfe Registry 2 Probleme

absent

Grünschnabel
Problem 1:
wie schreibe ich den wert "1" in einen REG_DWORD?
mit
Code:
RegSetValueEx(hKey, "keyname", 0, REG_DWORD, (BYTE*) "1", sizeof(DWORD));

geht das nicht dann kommt in der registry immer "Unültiger DWORD wert"

---------------------------------------
Problem2:

Code:
unsigned char xxx[99] = {""};	
unsigned long size = sizeof(xxx);

HKEY hKey; 
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\......\\...", 0, KEY_READ, &hKey); 
RegQueryValueEx(hKey, "keyname", 0, 0, xxx, &size);
RegCloseKey(hKey);

if (xxx == 1)
{....

Da möchte ich jetzt überprüfen ob der Key (ist ein REG_DWORD) den wert "1" hat aber ich bekomme folgenden fehler:

C:\xxxx.cpp(297) : error C2446: '==' : Keine Konvertierung von 'const int' in 'unsigned char *'
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
C:\xxx.cpp(297) : error C2040: '==' : 'unsigned char [99]' unterscheidet sich von 'const int' in bezug auf die Anzahl vorgenommener Dereferenzierungen

wenn ich dadraufklcike markiert er die reihe mit der if() abfrage...


Wäre ecuch dankbar wenn ihr mir helfen könntet!
 

Maximka

Erfahrenes Mitglied
Problem 1:
http://www.tutorials.de/tutorials136597.html

Problem 2:
Wenn du weisst das dein Key ein DWORD-Key ist, kann man es so machen
Code:
DWORD xxx = 0;
unsigned long size = sizeof(DWORD);
HKEY hKey; 
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\......\\...", 0, KEY_READ, &hKey);

RegQueryValueEx(hKey, "keyname", 0, 0, &xxx, &size);
RegCloseKey(hKey);

if (xxx == 1)

wenn du sicher stellen willst das der Key ein DWORD-Key ist muss du noch dieses einfuegen
Code:
DWORD dwType=0;
RegQueryValueEx(hKey, "keyname", 0, &dwType, 0, 0);
if(dwType!=REG_DWORD)
{
   // error handling
}