J'essaie d'importer d'une dll une fonction qui retourne un booleen.
on code est les suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
typedef bool (__stdcall *MYDLLFUNC)(void);
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HINSTANCE hinstDLL;
    MYDLLFUNC ImpFuncDLL;
    bool iRet;
 
    if ((hinstDLL=LoadLibrary("i2c_lib.dll"))) {
        ImpFuncDLL = GetProcAddress(hinstDLL, "i2c_selectport");
        if (ImpFuncDLL) {
            iRet = ImpFuncDLL();
        }
        FreeLibrary(hinstDLL);
    }
}
A la compilation, j'ai le message d'erreur suivant :

[C++ Erreur] Unit1.cpp(27): E2034 Impossible de convertir 'int (__stdcall *)()' en 'bool (__stdcall *)()'.

Je ne comprends pas pourquoi...quelqu'un a une idee?