delphi写的dll VC中调用报错。
delphi中一个很简单的函数:
function GetMaxVal(BmpFile: PChar) : Integer;
begin
Result := 10;
end;
vc中:
typedef int(*GetMaxVal)(PCHAR path);
HINSTANCEhandle = LoadLibrary("xxx.dll");
GetMaxVal gv;
gv = (GetMaxVal)GetProcAddress(handle,"GetMaxVal");
char *path = new char[128];
memset(path, 0, 128);
strcpy(path, "c:\\3.bmp");
int kk = gv(path);
出来一个终止,重试,忽略的报错框:
file:i386\chkesp.c
Line:42
The value of esp was not proerly saved across a function all.................
如果把delphi中的函数的PChar参数去掉,就能正常调用。
[解决办法]
GetMaxVal指定为stdcall调用约定了吗
[解决办法]
没看到你代码里的stdcall似的
[解决办法]