Appel d'une fonction externe d'une DLL

slykp Messages postés 3 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 27 août 2003 - 27 août 2003 à 09:56
slykp Messages postés 3 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 27 août 2003 - 27 août 2003 à 10:08
Salut tout le monde,

J'espere que les vacances ont été sympa :)

Voila, j'ai un soucis...arg....
J'ai fais une DLL, et maintenant je voudrais appelé les fonctions de la DLL mais pas traditionnellement...

CAD :

Function CopyText(Source,Destination:string):boolean; stdcall
external 'test.dll' name 'CopyText';

Procedure Form1.ButtonClick(Sender: Tobject)
var
source,destination:string;
boolean;
Begin
source:=edit1.text;
destination:=edit2.text;

asm
pushad
mov eax, dword ptr [source]
mov ebx, dword ptr [destination]
push eax
push ebx
call CopyTexT
popad
end;

Enfin bref c un truc comme ca que j'essaye, et dont je n'arrive pas a me sortir :(
En faisant les convention habituelle :

Function CopyText(Source,Destination:string):boolean; stdcall
external 'test.dll' external 'CopyText'

Procedure Form1.ButtonClick(Sender: Tobject)
var
source,destination:string;
boolean;
Begin
source:=edit1.text;
destination:=edit2.text;
Boolean:=Copytext(Source,Destination);
end;

En faisant comme ci dessus ya po de soucis, mais je veux pouvoir faire passer ca en ASM, j'ai vu dans les imports de delphi (windows.pas) qu'il est possible de faire des call en asm ??

Comment faire ?

Merci bien

2 réponses

slykp Messages postés 3 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 27 août 2003
27 août 2003 à 10:06
En cherchant un peu je suis tombé la dessus ?
Est-ce que l'on pourrait m'expliqué :
far et forward :)

function _LocalLock(Mem: THandle): Word; far; forward;

function _LocalLock; external 'KERNEL' Index 8;

Merci
0
slykp Messages postés 3 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 27 août 2003
27 août 2003 à 10:08
Grrrr
j'ai oublié de donné la fonction :(
Ya aussi 'assembler' derriere qui est pas claire ?

function LocalLock(Mem: THandle): Pointer; assembler;
asm
PUSH Mem
CALL _LocalLock
MOV DX,DS
end;
0
Rejoignez-nous