[C++] Définir une valeur REG_DWORD dans le registre

Définir une valeur REG_DWORD dans le registre [C++] - Programmation

Marsh Posté le 10-12-2001 à 10:07:39    

J'utilise la fonction RegSetValueEx comme ceci:
 
HKEY Hk;
char *string = new char[255];
 
RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Test", &Hk);
RegSetValueEx(Hk, "entry", 0, 4, (const BYTE *)"1", strlen("1" ));
 
Et voila ca ce serait censé définir la valeur entry à 1 dans la clé HKEY_LOCAL_MACHINE\SOFTWARE\Test mais ca marche pas!! Pour les valeurs de type REG_SZ ca pose aucun probleme mais pour un REG_DWORD comme entry ca met une valeur incohérente. Est-ce parce que je passe un string en paramètre?

Reply

Marsh Posté le 10-12-2001 à 10:07:39   

Reply

Marsh Posté le 10-12-2001 à 10:09:08    

bkadoum a écrit a écrit :

Est-ce parce que je passe un string en paramètre?  




 
 
de tres forte chance oui

Reply

Marsh Posté le 10-12-2001 à 10:20:19    

d'accord et comment je fais alors? Le seul moyen que j'ai trouvé c'est passé un string et le caster en BYTE.

Reply

Marsh Posté le 10-12-2001 à 10:59:49    

bah un truc du genre :
 
DWORD pouet = 1;
 
 
RegSetValueEx(Hk, "entry", 0, REG_DWORD, (const BYTE *)&pouet,sizeof(pouet));  
 
 
marche pas ca ?
 
Quand tu mets REG_DWORD, la fonction s'attends a recevoir un DWORD (4octet de long) alors qu'avec ce que tu faisais elle recevait un char (1octet) . ca doit etre pour ca que tu obtenais des bidules incoherents

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed