因为你在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)