VC调用Delphi写的Dll碰到一点小问题!!
Delphi中写的Dll,其接口函数格式
SendReal (channel,flag,date1,time1,value1,value2,value3,value4,value5,value6,value7:Double):single;
VC中如何调用该dll的接口函数!
//***********************************
typedef float(_cdecl *Connect)(double i);
HINSTANCE hinstDLL=NULL;
hinstDLL=LoadLibrary("dllname.dll");
if (hinstDLL)
{
Connect Proc;
Proc = (Connect)GetProcAddress (hinstDLL,"SendReal");
float iValue = Proc(1,0,20050302,124701,1,2,3,4,5,6,7);//出错
FreeLibrary(hinstDLL);
}
error:
error C2197: 'float (__cdecl *)(double)' : too many actual parameters
问题点数:20、回复次数:3Top
1 楼tankbattle(坦克大战)回复于 2005-03-02 12:57:46 得分 20
typedef float(stdcall *Connect)(double channel,double flag,double date1,double time1,double value1,double value2,double value3,double value4,double value5,double value6,double value7);
参数总还是要一样的吧Top
2 楼tankbattle(坦克大战)回复于 2005-03-02 12:59:33 得分 0
还有调用约定_stdcall(上面回复少了下划线)和_cdecl的区别Top
3 楼sunjun240(小帅猪)回复于 2005-03-02 13:13:37 得分 0
typedef float(stdcall *Connect)(double channel,double flag,double date1,double time1,double value1,double value2,double value3,double value4,double value5,double value6,double value7);
后,编译通过。。。
我再看看是否调用成功.......Top




