Définir une valeur REG_DWORD dans le registre [C++] - Programmation
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
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.
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
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?