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] = "00“B"; 
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:


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);
Ça ne fonctionne pas !

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.]