Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Registry

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
23.11.2006, 18:48 Uhr
~Anno2006
Gast


Hi,

Ich möchte etwas in die Registry schreiben aber es funktioniert nicht ganz.
Wo liegt der Fehler?


C++:
    HKEY hKey=HKEY_CLASSES_ROOT;
    char Variable[6]="&Blub";
        RegCreateKeyEx(hKey,
                               L"Directory\\shell\\Test",
                               0,
                               NULL,
                               REG_OPTION_NON_VOLATILE,
                               KEY_ALL_ACCESS,
                               NULL,
                               &hKey,
                               NULL);    
    RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE *)Variable,strlen(Variable)+1);
    RegCloseKey(hKey);



In der Registry kommt nur "䈦畬b" an alsstatt "&Blub".
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.11.2006, 19:16 Uhr
BoBtheREapER
kein job für nen BoB


wieso definierst du einen c string mit 6 zeichen wenn du nur 5 brauchst?
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.11.2006, 19:23 Uhr
~Anno2006
Gast


Weil sonst
Error 1 error C2117: 'Variable' : array bounds overflow kommt da der "char"-string mit einer \0 abgeschlossen wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.11.2006, 19:24 Uhr
Blubber2063



Nein er braucht 5 Zeichen und den 0 terminator, aber du darfst nicht &hKey schreiben, Felder sind in C durch Pointer auf das erste Element repräsentiert, daher hast du schon die Adresse, die da rein gehört.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.11.2006, 19:33 Uhr
~Anno2006
Gast


Nein wenn ich &hKey ändere verusacht das einen Fehler.
Aber es geht auch eher um RegSetValueEx denn des wirt nicht der falsche Schlüssel, sondern der Falsche Wert in die Registry geschrieben. Also RegCreateKeyEx funktioniert einwandfrei. Hier muss der Fehler sein:

C++:
    RegSetValueEx(hKey,
                        NULL,
                        0,
                        REG_SZ,
                        (BYTE *)Variable,strlen(Variable)+1);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.11.2006, 20:26 Uhr
xXx
Devil


Gibt es denn ne Fehlermeldung? GetLastError ?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.11.2006, 20:38 Uhr
~Anno2006
Gast


Nein es gibt keine Fehlermeldungen. In der Registry steht halt nur nicht "&blub" wie es sein sollte, sondern nur Zeichen die nicht angezeigt werden können und nur das letzte Zeichen also in dem Fall das "b" ist richtig da.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.11.2006, 21:32 Uhr
Blubber2063



Ich bin immer noch der Meinung das da hkey stehen muss und nicht &hkey, aber bitte.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.11.2006, 22:07 Uhr
~Annp2006
Gast


Bei:

C++:
RegCreateKeyEx(hKey1,L"Directory\\shell\\Test",0,
NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,hKey1,NULL);    


kommt:

Code:
Error    1    error C2664: 'RegCreateKeyExW' : cannot convert parameter 8 from 'HKEY' to 'PHKEY'    


also muss es wohl so "&hKey" geschrieben werden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.11.2006, 22:43 Uhr
Blubber2063



Hmm, ok, ich weiss zwar nicht warum er nen Zeiger auf ein char Feld braucht, aber gut, hab jetzt halt auch nicht in der Msdn nach der Signatur nachgeschlagen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: