Problème d'access au registre Buffer

Résolu
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009 - 21 juin 2006 à 22:50
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009 - 23 juin 2006 à 02:43
Bonour,

J'aimerais savoir si qq peu m'aider sur le problème suivant :

En effet, j'ai des problème d'accès qu registre, suite a la recupérartion de plusieurs valeur de different type (Dword, Reg_SZ, Reg_MultiString etc) j'obtient des valeur totalement incoherente ?

Je pense que cela doit être dû au buffer mais je trouve pas d'exemple me permettant de comprendre simplement la facon d'effectuer une allocation dynamique.
 
Voici un extrait du code en question :

#define BUFSIZE     128



    HKEY vhKey;
    DWORD vFlag;
    char  BufU               [64];
    char  BufZ               [256];
    char  BufY               [64];
    char  BufV               [64];
    char  BufW               [64];
    DWORD vType =            0;



    DWORD vSize =            BUFSIZE;



             if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\TATA\\TOTO", 0, KEY_QUERY_VALUE, &vhKey) == ERROR_SUCCESS);
                {
                                                 
                if (RegQueryValueEx(vhKey, "X", NULL, &vType, (LPBYTE)&vFlag, &vSize)== ERROR_SUCCESS);
               
                if (RegQueryValueEx(vhKey, "Y", NULL, &vType, (BYTE*)BufY, &vSize)== ERROR_SUCCESS);



                if (RegQueryValueEx(vhKey, "Z", NULL, &vType, (BYTE*)BufZ, &vSize)== ERROR_SUCCESS);
                  
                if (RegQueryValueEx(vhKey, "W", NULL, &vType, (BYTE*)BufW, &vSize)== ERROR_SUCCESS);



                if (RegQueryValueEx(vhKey, "V", NULL, &vType, (BYTE*)BufV, &vSize)== ERROR_SUCCESS);
               
                if (RegQueryValueEx(vhKey, "U", NULL, &vType, (BYTE*)BufU, &vSize)== ERROR_SUCCESS);



           
                }

Merci d'avance à celui qui m'apportera la solution

Drkns

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juin 2006 à 01:21
RegQueryValueEx comme autre fonction API, faire gaffe aux specs dans MSDN, si param est dit [IN OUT] il faut le remplir avant appel et regarder ce qu'il vaut en sortie. C'est le cas par exemple avec le dernier param de RegQueryValueEx, mets la taille du buffer à chaque appel et vérifie ce que Win a mis dedans au retour.

ciao...
BruNews, MVP VC++
3
drkns Messages postés 22 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 10 mars 2009
23 juin 2006 à 02:43
Merci beaucoup BruNews, je vois que tu est toujours present ! ;)

Cordialement,

Drkns
0
Rejoignez-nous