Bonjour à tous !
J'essaye d'utiliser une DLL fournie sans .lib, mais avec un beau .h, du coup je tente la combo LoadLibrary et GetProcAddress. Le problème c'est que GetProcAddress me renvoi NULL tout le temps.
Je suis sous windows (XP 64 bits) et je développe avec VS 2008 (que je maîtrise mal).
Vla mon code :
Ma dll s'appelle MADLL.dll et son header associé MADLL.h.
Les fonctions dans le header de la DLL sont déclarées en extern "C" :
Code C/C++ :
MADLL.H
extern "C"
{
__declspec(dllexport) MonTypeDeRetour __stdcall MADLL_MaFonction();
...
}
Code C/C++ :
MAIN.H
#include <iostream>;
#include <stdio.h>
#include <windows.h>
#include "MADLL.h"
...
Code C/C++ :
MAIN.CPP
#include "main.h"
using namespace std;
int main()
{
typedef UINT (__stdcall* MYDLLFUNC)(DWORD,UINT);
HINSTANCE hDLL;
MYDLLFUNC ImpFuncDLL;
hDLL = LoadLibrary(L"MADLL");
if (hDLL != NULL)
{
ImpFuncDLL = (MYDLLFUNC)GetProcAddress(hDLL, "MADLL_MaFonction");
if (!ImpFuncDLL)
{
cout<<"error"<<endl;
FreeLibrary(hDLL);
return 1;
}
else
...
L’exécution m'affiche toujours 'error', donc GetProcAddress renvoie NULL.
J'ai pas mal tourné sur le net pour trouver une réponse mais je bloque toujours...
La DLL se load puisqu'on rentre dans le if, donc je vais mal chercher les fonctions... Est-ce qu'il faut que je colle un __declspec(dllimport) quelque part ?
Help !
Merci :)