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
| //int FTW_Acq_GetImage( HANDLE& hDib, int& count );
typedef int (*FTW_ACQ_GETIMAGE_PROC)( HANDLE &, int & );
//Nom extern "C" de la fonction :
//Si la fonction est en __cdecl
#define FTW_ACQ_GETIMAGE_NAME "FTW_Acq_GetImage"
//Si la fonction est en __stdcall, ce qui est probable pour une DLL
#define FTW_ACQ_GETIMAGE_NAME "_FTW_Acq_GetImage@8"
//Si la fonction est en __fastcall, ce qui n'arrive pratiquement jamais
#define FTW_ACQ_GETIMAGE_NAME "@FTW_Acq_GetImage@8"
void uneFonction()
{
HMODULE hMod = LoadLibrary( TEXT("FayaTwain.dll") );
if(hMod != NULL)
{
//Ce code ne peut marcher que si la fonction est en extern "C" dans la DLL.
//Et encore, même en extern "C", il y a trois noms possibles: voir plus haut
FTW_ACQ_GETIMAGE_PROC FTW_Acq_GetImage_proc
= GetProcAddress(FTW_ACQ_GETIMAGE_NAME);
FTW_Acq_GetImage_proc( /* paramètres */ );
FreeLibrary(hMod);
}
} |