高手们帮我看看DELPHI调用DLL的问题在哪
1、我用VC6.0做了一个MFC DLL
输出函数定义如下:
extern "C" _declspec(dllexport) void GetCheckData(double * mWeight, double * mHight);
2、我用以下VC代码在调用该函数,没有任何问题:
void CAppDlg::OnButton1()
{
// TODO: Add your control notification handler code here
double mfWeight=0.0,mfHight=0.0;
CString stra;
HINSTANCE hin;
typedef (*myfun)(double*,double*);
myfun proc;
hin=::LoadLibrary("RecData.dll");
if (hin != NULL)
{
proc=(myfun)::GetProcAddress(hin,"GetCheckData");
proc(&mfWeight,&mfHight);
}
FreeLibrary(hin);
}
3、我用以下DELPHI代码调用,报MFC42.DLL中内存访问错误
type
TgetData = function (l,w:pointer): HResult; stdcall;
procedure TForm1.Button1Click(Sender: TObject);
var
lWeight,lHigh:Double;
lb:tHandle;
getCheckData:tGetData;
begin
lb := loadlibrary('E:\com\RecData\release\recData.dll');
if lb <> 0 then
begin
getCheckData := GetProcAddress(lb,'GetCheckData');
if assigned(getCheckData) then
getCheckData(@lWeight,@lHigh);
end;
end;
将TgetData = function (l,w:pointer): HResult; stdcall;
改为TgetData = function (var l,w:double): HResult; stdcall;
仍然不行
高手们帮忙啊