[API32] Librairie dynamique + variables d'environnement
Bonjour,
Je suis confronté à un problème dont je n'arrive pas à trouver la solution.
J'ai créé un programme qui:
- Déclare des variables d'environnement,
- Charge une librairie avec LoadLibrary
- Appelle une fonction de cette librarie avec GetProcAddress
Le code donne quelque chose comme ça:
Code:
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
|
if( !SetEnvironmentVariable("Variable1", "Value1") )
{
return 1;
}
if( !SetEnvironmentVariable("Variable2", "Value2") )
{
return 1;
}
HINSTANCE myLib = LoadLibrary( "MyLib.dll" );
if( myLib != NULL )
{
my_func_type_t myFunc = (my_func_type_t) GetProcAddress( myLib, "_MYFUNC@144" );
if( myFunc != NULL )
{
myFunc( ... );
// Affiche: "Erreur, la variable d'environnement Variable1 n'est pas déclarée"
}
else
{
return 1;
}
}
else
{
return 1;
} |
La fonction appelée dans la librairie externe exige que les variables d'environnement soient déclarées. Sinon, je récupère un code d'erreur.
Et justement, je récupère à chaque fois un code d'erreur comme quoi les variables d'environnement ne sont pas bien positionnées.
Si je déclare directement les variables d'environnement dans Windows, tout ce passe bien, donc je pense qu'il n'y pas d'erreur dans la manière d'appeler la fonction.
Je ne suis pas l'auteur de la librairie appelée, et je n'en possède pas le code source.
Quelqu'un aurait une idée?
Merci d'avance.