Lire dans la base de registre

BsEtZeOpLhD Messages postés 61 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 29 juin 2005 - 17 avril 2003 à 22:53
BsEtZeOpLhD Messages postés 61 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 29 juin 2005 - 18 avril 2003 à 23:11
Salut.
J'utilise VC++ et je suis sous Win XP.
Voila, j'ai un problème pour lire une valeur de type REG_SZ dans la base de registre.
J'utilise ce code :
#include <windows.h>
#include 

void EcrireTexte(HKEY HK,DWORD RE,char* cle,char* nom,char* valeur)
{
SECURITY_ATTRIBUTES SecAtt;
SecAtt.nLength = sizeof (SECURITY_ATTRIBUTES);
SecAtt.lpSecurityDescriptor = NULL;
SecAtt.bInheritHandle = TRUE;

HKEY Retour;
DWORD Action;

RegCreateKeyEx(HK,cle,0,"", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, & SecAtt, &Retour, &Action);
RegSetValueEx(Retour,nom,0,RE ,(unsigned char *)valeur,strlen(valeur)+1);
RegCloseKey(Retour);
}

void LitTexte(HKEY HK,char* cle,char* nom,char* valeur,unsigned long taille)
{
HKEY Retour;
unsigned long type;

RegOpenKeyEx(HK,cle,0,KEY_ALL_ACCESS,&Retour);
RegQueryValueEx( Retour,nom,NULL,&type,(unsigned char *)valeur,&taille);
RegCloseKey(Retour);
}

void main ()
{
EcrireTexte(HKEY_LOCAL_MACHINE,REG_SZ,"SOFTWARE\\Test","Test","voici un test");
char valeur;
LitTexte(HKEY_LOCAL_MACHINE,"SOFTWARE\\Test","Test",&valeur,14);
cout << valeur;
}
Peu importe la valeur entré dans la variable taille, le programme plante...
Merci de me dir se qui ne va pas.
Bye.

2 réponses

cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
18 avril 2003 à 23:04
salut,

C simple
change ta déclaration 'char valeur' en 'char valeur[14]',
ce qui permettra une bonne allocation mémoire
et change
LitTexte(HKEY_LOCAL_MACHINE,"SOFTWARE\\Test","Test",&valeur,14);
en
LitTexte(HKEY_LOCAL_MACHINE,"SOFTWARE\\Test","Test",valeur,14);
0
BsEtZeOpLhD Messages postés 61 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 29 juin 2005
18 avril 2003 à 23:11
Merci beaucoup !!! :)
0
Rejoignez-nous