RegQueryValueEx
-
Hab ein kleines problem..also ich arbeite mit Borland c++ Builder 6 und würde gerne die letzte portaddresse von icq auslesen also so siehts aus:
///ICQ Port heruasfinden HKEY hKey; RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Mirabilis\\ICQ\\CommonPrefs\\Connection\\LastSucceededConnectionSets",&hKey); DWORD dwNumber = 0; RegQueryValueEx(hKey, "ServerPort", NULL, REG_DWORD, (LPBYTE) &dwNumber, sizeof(DWORD)); RegCloseKey(hKey); Edit1->Text = dwNumber;doch darauf hin kommen diese fehlermeldungen:
[C++ Fehler] ICQ.cpp(28): E2034 Konvertierung von 'int' nach 'unsigned long *' nicht möglich[C++ Fehler] ICQ.cpp(28): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpType' ('unsigned long *' erwartet, 'int' erhalten)[C++ Fehler] ICQ.cpp(28): E2034 Konvertierung von 'unsigned int' nach 'unsigned long *' nicht möglich[C++ Fehler] ICQ.cpp(28): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpcbData' ('unsigned long *' erwartet, 'unsigned int' erhalten)
-
Du hast zwar keine Frage gestellt, aber ich nehme an, du möchtest wissen, wo das Problem liegt.
Sieh dir nochmal genau an, was RegQueryValueEx im letzten Parameter erwartet.
-
Ich versteh nicht ganz....also der letzte parameter ist einfach nur ein wert der angibt wie groß der buffer ist...
habs auch am anfang mal hiermit versucht:///ICQ Port heruasfinden HKEY hKey1; RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Mirabilis\\ICQ\\CommonPrefs\\Connection\\LastSucceededConnectionSets",&hKey1); unsigned long dwText1; DWORD lpcbData1 = sizeof(dwText1); RegQueryValueEx(hKey1, "ServerPort", NULL, REG_DWORD, dwText1, &lpcbData1); RegCloseKey(hKey1); Edit1->Text = dwText1;
-
Second_Sun schrieb:
Ich versteh nicht ganz....also der letzte parameter ist einfach nur ein wert der angibt wie groß der buffer ist...
Nein. Der letzte Parameter ist ein Zeiger auf eine Variable, in der vor dem Aufruf stehen muss, wie groß der Puffer ist, und in der hinterher steht, wieviel ausgelesen wurde.
habs auch am anfang mal hiermit versucht:
Wenn du dazu Hilfe willst, wäre es schon von Vorteil, wenn du auch beschreiben würdest, was bei diesem Versuch rausgekommen ist. Fehlerbehandlung bei den Registryfunktionen wäre sicher auch nicht verkehrt, das könnte die Diagnose massiv vereinfachen.