C#调用delphi dll出现错误;
发布网友
发布时间:2023-09-21 18:19
我来回答
共1个回答
热心网友
时间:2024-10-22 04:58
因为你在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)