Delphi中如何调用VC编写的DLL(100分)

  • 主题发起人 chinaSky
  • 开始时间
C

chinaSky

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾快来帮忙,好象Delphi调用VC的DLL有什么说道,望各位告知。
小弟做了一个简单的DLL:
extern "C" _declspec(dllexport) int myAdd(int a, int b){return a+b;}
VC中该DLL函数没问题,Delphi中调用该函数也能返回正确值,
但在调用该函数的过程结束的时候异常终止,好象是临时变量释放时产生问题,
程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k : integer;
p : pChar;
begin
i :=2;
j := 3;
i := myadd(i,j);
//正常 返回 5
showmessage(inttostr(i));
//正常
end;
//出错,程序异常终止!
 
我测试了一下,完全正常啊。
在VC中你是用_declspec声明函数的,在Delphi中就要用cdecl声明,如果用stdcall声明,
就会出现异常终止。
建议在VC和Delphi中都使用stdcall声明(VC中为_stdcall)。
 
好了,谢谢!
 
顶部