Voici comment j'ai créer ma DLL (car je ne sais pas si c'est vraiment exacte):
#import "C:\Program Files\Fichiers communs\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
#include "ADOLib.h"
#include <windows.h>
#include "IMU_DLL.h"
//#include "IMU_DLL.h"
//#include <D:\marielle\IMU_DLL\IMU_DLL.def>CString sProvider= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\BdD.mdb;Mode=ReadWrite;Persist Security Info=False";
#include "stdafx.h"
//Fonction 1
extern "C"__declspec(dllexport) WINAPI IMU_connect(CString* etat, CString* defaut))
{....}
Et voici comment je voulais l'appeler:
#include <windows.h>
#include "StdAfx.h"
#include "Cpp1.h"
int main(void)
{
CString* setat =new CString;
CString* sdefaut =new CString;
HMODULE hDLL = LoadLibrary("D:\\marielle\\IMUDLL2\\IMU_DLL.dll");
if(!hDLL)
{
MessageBox(NULL, "Impossible de chargée la DLL...", "Erreur", MB_ICONERROR);
printf("erreur");
return 0;
}
DLL_Function_Imu_connect ptr_IMU;
ptr_IMU = (DLL_Function_Imu_connect)GetProcAddress(hDLL, "IMU_connect");
if (!ptr_IMU)
{//erreur
MessageBox(NULL, "erreur los de l'allouage...","erreur", MB_ICONERROR);
FreeLibrary(hDLL);
}
ptr_IMU(CString& etat, CSring& defaut);
//Et on libère la DLL*/
cout<<*setat;
cout<<*sdefaut;
FreeLibrary(hDLL);
return 0;
}
avec Cpp1.h:
#ifdef __IMU_DLL_H
#define __IMU_DLL_H
#include<Windows.h>
#if defined(__cplusplus)
extern "C"{
#endif
typdef void (WINAPI *DLL_Function_Imu_connect) (CString *setat, CString *defaut);
#if defined (_cplusplus)
}
#endif
#endif __IMU_DLL_
et j'ai pal mal d'erreur, comme quoi, il ne reconnait aps la fonction Imu_connect et le pointeur de fonction
Merci pour votre aide!