DLL avec fonction prenant en parametre une autre fonction
(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
Code:
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 |
fichier.cpp
Code:
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 probleme est que les nombres que je recupere dans mon programme de test ne correspondent pas du tout a ceux-ci ...
Mon programme utilisant la DLL est en Delphi :
en voici un extrait:
Code:
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; |
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 :(
merci