Skocz do zawartości

RegQueryValueEx nie prawidłowy paramter


Recommended Posts

Napisano

Problem polega na tym, że otwieram (jak nie istnieje to go tworzę) sobie klucz aby z niego odczytywać wartości. I nawet gdy dana wartość istnieje w rejestrze to funkcja zwraca błąd o kodzie 87. Po rozszyfrowaniu go przy pomocy FormatMessage otrzymuję "Paramter jest nieprawidłowy"
Oto ten kod:

case WM_CREATE:
        if (RegOpenKeyEx(HKEY_CURRENT_USER,regkey,0,KEY_ALL_ACCESS,&result)!=ERROR_SUCCESS)
       RegCreateKey(HKEY_CURRENT_USER,regkey,&result);
                                 
                         ZeroMemory(valvedir,MAX_PATH);
                         opres = RegQueryValueEx(result,"PakPath",0,NULL,(unsigned char *)&valvedir,NULL);//tu pobieram
                        
                         if (opres!=ERROR_SUCCESS)
                         {
                                 LPVOID lpMsgBuf;
 
                                 FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                                 NULL,opres,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
                                (LPTSTR) &lpMsgBuf,0,NULL );

                  // Display the string.
                  MessageBox( NULL, (char *)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );

                   // Free the buffer.
                  LocalFree( lpMsgBuf );

Co robię nie tak jak trzeba

Napisano

Tworzysz nowy klucz,ale nic do niego nie zapisujesz więc nic nie możesz odczytać :) Poza tym ostatni parametr w RegQueryValueEx to adres zmiennej ktora zawiera rozmiar bufora do którego zapisać dane, a u ciebie jest 0. No i nie używaj RegCreateKey bo to jest dla 16 bitowych windowsów, zamiast tego użyj RegCreateKeyEx.

Napisano

Faktycznie, głupi błąd zrobiłem. Poprawiłem jak mówiłeś i już działa. To chyba ze zmęczenia bo piszę właśnie swój pierwszy program w czystym WinApi. Już przeszedłem męki z menu kontekstowym w trayu i SHBrowseForFolder(), ale na tym teraz kompletnie utknąłem. DZIEKI !

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...