C#调用delphi dll出现错误;

2025-05-16 17:55:06
推荐回答(1个)
回答1:

因为你在C的这边函数声明没有使用STDCALL声明,而DELPHI用的则用了STDCALL故造成问题.

方法一: 改DELPHI代码:
function login(name,password:pchar):Integer;stdcall;
改成
function login(name,password:pchar):Integer;cdecl;

当C函数不使用STDCALL方式声明时, 默认的约定叫C declare (看字面意思就应该明白,C的函数声明方式)
DELPHI对应的就是cdecl

方法二: 改C部分代码
extern "C" _declspec(dllexport) int login(char *name,char *password)
改成

extern "C" _declspec(dllexport) __stdcall int login(char *name,char *password)