J'ai développé une DLL en C++ qui doit être utilisée avec Delphi 5.0
Cell-ci fonctionne très bien avec un programme C++, mais je n'arrive pas à l'utiliser avec Delphi.
Ma DLL est comme suit:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 //--------------------------------------------------------------------------- #include <vcl.h> #include "FloatDLL.h" #pragma hdrstop //--------------------------------------------------------------------------- extern __declspec(dllexport) void Float(char ,float); void Float(char mnemonic[4],float *Reponse) { *Reponse = *(float *) mnemonic; } //--------------------------------------------------------------------------- int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { return 1; } //--------------------------------------------------------------------------- Cette fonction utilise *(float*) pour convertir une valeur binaire en point flottant, ça fonctionne. Le programme en C++ qui la fait fonctionner est comme suit: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "FloatDLL.h" #include "Conv_FloatUnit.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { char mnemonic[4] = "00B"; float Reponse =-999.9; Float(mnemonic,&Reponse); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Close(); } //---------------------------------------------------------------------------
Pour appeler cette fonction en Delphi j'utilise le code suivant:
Ça ne fonctionne pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Procedure Float(mnemonic: Str4; ReponsePtr: Pointer); external 'FloatDLL.DLL'; Float(DataStr[II],ReponsePtr);
J'ai aussi aluoté à la fonction d'appel stdcall
Procedure Float(mnemonic: Str4; ReponsePtr: Pointer); stdcall external 'FloatDLL.DLL';
Ça ne fonctionne pas plus !![]()
J'apprécierais avoie de l'aide pour résoudre mon problême
[Balise [code] rajoutée par gRRosminet]
[Pensez-y vous-même à l'avenir. Merci.]
Partager