Bonjour,

Je viens de télécharger la dernière version du compilateur MinGW 32 bits ici et je développe un petit programme qui utilise les fonctions Windows dont voici un bout de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
char * registry_current_user_key_search(char *subkey, char *value, int version_windows)
{
   HKEY current_key;
   char buffer[256];
   char *data = NULL;
   DWORD size = sizeof(buffer),
         result;
 
   buffer[0] = '\0';
 
   result = RegOpenCurrentUser(KEY_READ, &current_key);
   if(result != ERROR_SUCCESS)
     {
        printf("RegOpenCurrentUser error : %ld\n", GetLastError());
        return data;
     }
 
   result = RegGetValue(current_key, subkey, value, RRF_RT_ANY, NULL, &buffer, &size);
   if(result != ERROR_SUCCESS)
     {
        printf("RegGetValue error : %ld\n", result);
        goto my_errors;
     }
 
   data = strdup(buffer);
 
   RegCloseKey(current_key);
 
   printf("Valeur de data : %s\n", data);
 
   return data;
 
my_errors:
   RegCloseKey(current_key);
   return data;
}
Et j'ai cette erreur de compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
||=== Build: MinGW 32 in GestionBaseRegistre (compiler: MinGw 32) ===|
M:\Test c\GestionBaseRegistre\main.c||In function 'registry_current_user_key_search':|
M:\Test c\GestionBaseRegistre\main.c|383|warning: implicit declaration of function 'RegOpenCurrentUser' [-Wimplicit-function-declaration]|
M:\Test c\GestionBaseRegistre\main.c|390|warning: implicit declaration of function 'RegGetValue' [-Wimplicit-function-declaration]|
M:\Test c\GestionBaseRegistre\main.c|390|error: 'RRF_RT_ANY' undeclared (first use in this function)|
M:\Test c\GestionBaseRegistre\main.c|390|note: each undeclared identifier is reported only once for each function it appears in|
||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 6 second(s)) ===|
Cette erreur semble logique puisque la fonction RegOpenCurrentUser n'est pas dans le fichier winreg.h de MinGW 32 bits...
Du coup j'aimerai savoir si vous vous êtes confrontés à ce même type de problème et quelle est le compilateur que vous utilisez ?

Merci par avance.

PS: j'utilise RegOpenCurrentUser car j'ai un programme qui est lancé via un service.