(re)bonjour a tous,
je ne suis pas tres a l'aise en C++ et je voudrais developpez une DLL a laquelle on passe une fonction de "Callback" qui renverrait des nombres
voici mon code:
fichier.h
fichier.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #define DllExp __declspec( dllexport ) typedef void (*CALLBACKPROC)(long); #ifdef __cplusplus extern "C" { #endif DllExp bool InitDLL(CALLBACKPROC); #ifdef __cplusplus } #endif
Mon probleme est que les nombres que je recupere dans mon programme de test ne correspondent pas du tout a ceux-ci ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 DllExp bool InitDLL(CALLBACKPROC cb) { CALLBACKPROC callback; callback = cb; callback(20); callback(255); callback(11000); callback(2004); return true; }
Mon programme utilisant la DLL est en Delphi :
en voici un extrait:
Voila mon programme ne plante pas il me renvoie simplement de mauvaises valeurs (toujours les memes d'ailleurs...) j'ai bidouillé tout l'aprem sans succes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function InitDLL(cb: TCallBack):Boolean; cdecl; external 'madll.dll' [...] TCallback = procedure (s: Integer); procedure WriteLine(s: Integer); begin Form1.Memo.Lines.Add('Callback: '+inttostr(s)); end; procedure TForm1.Button1Click(Sender: TObject); begin InitDLL(WriteLine); end;
merci
Partager