iCAx开思工具箱
标题:
【求助】这个错误是什么意思啊?
[打印本页]
作者:
gasyu
时间:
2003-9-19 12:13
标题:
【求助】这个错误是什么意思啊?
我调用dll退出时出现的错误,为什么啊?帮帮忙啊!
作者:
pinkwall
时间:
2003-9-19 14:22
程序贴出来看看
光看结果很难说
作者:
gasyu
时间:
2003-9-19 16:07
HTestDll=LoadLibrary("F:/DllFtp/DllFtp.dll");
if (HTestDll!=NULL)
{
uc1601("LoadLibrary成功!",1);
DLLUPLOAD DllUpLoad;
DllUpLoad=(DLLUPLOAD)GetProcAddress(HTestDll,"MainUpLoad");
if (DllUpLoad)
{
uc1601("GetProcAddress成功!",1);
char * UpLoadFileName="f:\\temp.prt";
uc1601(UpLoadFileName,1);
int UpLoadResult;
UpLoadResult=DllUpLoad(UpLoadFileName);//*********************************
}
FreeLibrary(HTestDll);
}
///////////////////////////////////////////////
UF_terminate ();
运行到UpLoadResult=DllUpLoad(UpLoadFileName);//*********************************时,出错,其中调用了F:/DllFtp/DllFtp.dll中的函数MainUpLoad,此函数参数字符串,返回值为整数!
请帮我看看,谢谢!
作者:
zzz
时间:
2003-9-21 15:20
就是说一种语言调用了另一种语言引起的,如c调了fortran。
作者:
gasyu
时间:
2003-9-21 20:01
哈哈,我用的VC调用的DELPHI的DLL,就是这个问题吧,有没有解决方案啊!(还用VC调用的DELPHI的DLL,因为我的VC还没入门)
作者:
blackriver
时间:
2003-9-22 12:53
我估计,产生这个错误的可能原因有:
1、调用函数与被调用函数的参数不一致(即所占空间大小不同)。
2、调用习惯不同。可能一种用的是C语言调用规范,另一种是PASCAL规范,即标准规范。
作者:
zzz
时间:
2003-9-22 14:50
有些关于混合编程的书,如果感到有必要的话,可以自己去查一下。
作者:
stone_dong
时间:
2008-12-12 11:57
这个是dll导出函数的 规范不一致。
VC默认是_cdecl,DELPHI 是 _pascal
要么讲 函数调用方法都设一致,
要么在函数调用前用汇编代码调整ESP的值
作者:
Mozart
时间:
2008-12-14 17:01
。。。。。。。
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3