cs_Mini92
Messages postés45Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention10 janvier 2009
-
21 août 2006 à 02:49
cs_Mini92
Messages postés45Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention10 janvier 2009
-
21 août 2006 à 04:57
Plop all :)
Voilà, j'ai fais cette fonction qui récupère la valeur d'une clé du registre :
/**
* Retourne la valeur d'une clé dans le registre
* @Key = Key Path
* @Name = Key Name
* @Buf = Buffer
* @Size = Size Buffer
*/
int ViewUserVal (char *Key, char *Name, char *Buf, int Size)
{
HKEY hKey;
if (!RegOpenKeyEx (HKEY_CURRENT_USER, Key, 0, KEY_ALL_ACCESS, &hKey)) {
int s;
s = Size;
RegQueryValueEx (hKey, Name, 0, 0, (BYTE*)Buf, (DWORD*)&s);
RegCloseKey (hKey);
return (Buf); }
}
La fonction marche nikel mais j'obtiens ce message d'erreur :
In function 'ViewUserVal'.
[Warning] return makes integer from pointer whitout a cast
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 21 août 2006 à 03:29
Salut,
Normalement, ta fonction n'as pas besoin de retourner quoi que ce soit.
void ViewUserVal (char *Key, char *Name, char *Buf, int Size)
{
HKEY hKey;
if (!RegOpenKeyEx (HKEY_CURRENT_USER, Key, 0, KEY_ALL_ACCESS, &hKey)) {
int s;
s = Size;
RegQueryValueEx (hKey, Name, 0, 0, (BYTE*)Buf, (DWORD*)&s);
RegCloseKey (hKey);
}
}
A la sortie de la fonction, le buffer passé en 3ème paramètre contiendra la valeur de la clé.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 21 août 2006 à 02:56
Ben tu essais de renvoyer un pointeur char dans un int. Ya 2 solutions.
La première et celle que je te recommande c'est de changer la valeur de retour de ta fonction pour char *:
char *ViewUserVal (char *Key, char *Name, char *Buf, int Size)
sinon, tu peut effectuer un cast sur la valeur de retour:
return (int)buf;
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 21 août 2006 à 03:35
Il peut, en retournant un pointeur char, déclarer un autre pointeur sur cette chaine. Ceci dit, je n'en vois pas l'utilité dans ce context à moin qu'il retourne un pointeur sur fin de chaine mais à priori, ce n'est pas le cas. On sais jamais. :)
C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation