在delphi的project1.dll中有如下函數:
function PlusNum(X,Y:Integer):Integer;stdcall;
begin
Result:=X+Y;
end ;exports
PlusNum;begin
end.
在delphi中調用沒有問題,但在VC6.0中卻不能正確調用。
void CdelphiDlg::OnOK()
{
// TODO: Add extra validation here
typedef int(MYFUN)(int,int);
HINSTANCE hDll=::LoadLibrary("Project1.dll");
ASSERT(hDll!=NULL);
MYFUN * pfun=NULL;
pfun=(MYFUN *)GetProcAddress(hDll,"PlusNum"); int p;
try
{
p=(*pfun)(5,10);
}
catch (CMemoryException* e)
{
e->ReportError();
e->Delete();
return ;
}
if(p==NULL)
FreeLibrary(hDll);
}請教各位,問題可能出在哪裡。
因我是第一次在VC中使用Delphi的dll,請有這方面的高人多多指點。
問題解決馬上給分結貼。
改为:typedef int(__stdcall MYFUN)(int,int); 就OK了。