bonjour,
sous Visual C++ j'ai écrit un petit programme en C++ qui permet d'accéder à un port parallèle en utilisant une DLL inpout32.dll :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
HINSTANCE hLib;
hLib = LoadLibrary( "inpout32.dll" );
if (hLib==NULL)
{
std::cout << "ko";
Sleep(1000);
return 1;
}
std::cout << "ok";
Sleep(1000);
FreeLibrary(hLib); |
Ce programme fonctionne très bien à condition de mettre la DLL en question dans le même dossier que l'exécutable. Je l'ai compilé en 32 bits et avec le jeu de caractères multioctets MCBS. Pas de souci donc avec ceci.
Maintenant j'essaye d'implémenter ce bout de code dans une DLL 32 bits mais compilée avec le jeu de caractères UNICODE :
1 2 3 4 5 6 7 8 9 10 11 12
|
hLib = LoadLibraryA("inpout32.dll");
if (hLib == NULL)
{
cout << "ko";
}
else
{
cout << "ok";
FreeLibrary(hLib);
} |
j'ai utilisé la fonction LoadLibraryA() car je suis en UNICODE. Cela compile mais même si je mets inpout32.dll dans le même dossier que la DLL générée, inpout32.dll n'est pas trouvée.
J'ai également utilisé cette syntaxe
LoadLibrary( _T("inpout32.dll") );
mais le problème persiste.
Où est mon erreur ? Je pense avoir oublié une directive de compilation, mais j'ignore laquelle.
Partager