voila mon probleme j'ai fait une dll en non mfc je la compile tout se passe bien nickel et je veux la load dans appartire de mon application MFC mes la probleme il ne me trouve pas la function dans la dll voila ma procedure de import de dll
HINSTANCE gLibDll;
typedef int (*DLL_TEST)();
DLL_TEST test;
gLibDll = LoadLibraryA("MS_Stock_lib.dll");
test = (DLL_TEST) GetProcAddress(gLibDll, "test");
test();
et voila ma function dans la dll
__declspec(dllexport) int test()
{
MessageBox(NULL,"coucou2",MB_OK,0);
return 0;
}
Ajoutes des testes pour savoir où se lacalise l'erreur :
- Au moment du chargement de la DLL (Fais attention à son emplacement)
- Au moment du chargement de la fonction
Ce que je veux te dire c'est d'examiner les valeurs de retour de LoadLibrary et GetProcAddress
typedef int (*DLL_TEST)();
HANDLE gLibDll;
DLL_TEST test;
if (!(gLibDll = LoadLibraryA("MS_Stock_lib.dll")))
MessageBox (NULL, "Erreur de chargement de DLL", "Erreur", MB_OK);
else {
if (!(test = (DLL_TEST) GetProcAddress(gLibDll, "test")))
MessageBox (NULL, "Erreur de chargement de la fonction à partir du DLL", "Erreur", MB_OK);
else
test();
}
Tu ne devrais pas avoir d'erreur sur extern "C", cela sert à importer la fonction C sans décoration de nom :
Dans ton EXE MFC fais un prototype :
extern "C" __declspec(dllimport) int test();