[在线等]Delphi调用VC写的dll的问题
有一个dll,VC调用接口如下:
typedef struct tag_CaptAPI{
unsigned char char[25];
unsigned char captMarks[15];
unsigned char *Buffs[15];
} CaptAPI;
CaptAPI capt;
::ZeroMemory(&capt,sizeof(CaptAPI));
strcpy((char*)capt.code,szCardID);
HINSTANCE hDLL;
typedef int (CALLBACK* LPPROC)(CaptAPI *);
LPPROC LPpROC;
hDLL = LoadLibray("FcDLL.DLL");
if (hDLL == NULL) return;
lpProc := (LPPROC)GetProcAddress(hDLL,"CaptFing");
if (!lpProc)
{
freeLibrary(hDLL);
return;
}
int nRet =lpProc(&capt);
上面是她的调用例程,我要在delphi中调用该动态链接库,程序如下:
Type
TCAPT = record
sZWBH:array[0..24] of char;
sZWBJ:array[0..14] of char;
pZW :array[0..14] of pchar;
end;
//调用部分
var
myTag :TCAPT;
dllhandle:THAndle;
nRet:integer;
DllProc:function (handle:HWND;Capt:TCAPT):integer;stdcall;
begin
myTag.sZWBH = '12345';
dllhandle := loadLibrary(pchar('c:\FCDLL.dll'));
if dllhandle = 0 then
exit;
dllproc:=GetProcAddress(dllhandle,'CaptFing');
if assigned(dllproc) then
try
nRet := dllProc(application.handle,'captfing');
finally
freeLibrary(dllhandle);
end
end;
end;
这两段程序,实际执行效果确实不一样的,也就是说,VC中的结构传入的参数,该DLL就可以处理,而
DELPHI中传入的参数,DLL却无效了。
在线求:问题到底出在哪里啊?