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;仍然不行高手们帮忙啊
输出函数定义如下:
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;仍然不行高手们帮忙啊
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货