vc6编的代码控件,在delphi下测试,其中的函数返回值运行结果不对,其他都正常。什么原因? 函数声明是否正确,主要是压栈方式。C的缺省压栈方式是cdecl,而Delphi这是register,你不妨把Delphi的函数声明和C地函数声明都贴出来看看。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Delphi 调用方式声明为 Stdcall 试一试。 我试过,即使vc中的ctrl类函数只返回一个值, 如: long C1ctrl::r() { return 1222; } 结果在中调用此函数结果不正确. 我的调用方法如下: 控件名为:c1 var ret:integer; ret:=c1.r(); 调试结果为很大的一个值 我没用过delphi,能否说得详细点? 我可能没说清楚 如果我把返回值放在参数表中,运行结果是正确的, 如: void CMyAcxCtrl::f1(strTmp inStr,long reply) { ..... reply:=122; } 在delphi 下测试没问题.而一旦将采用以下方式: long CMyAcxCtrl::f1(strTmp inStr) { ...... return 122; } 在delphi 下测试 var ret:Longint; .......... ret:= myacx1.f1('111'); 结果不对;而且我试过其他类型的返回值都不对. 束手无措. 调用储存过程时报错"对于造型说明无效的字符值" 在Free Pascal下没有问题,怎么到Delphi中就不正确了? 着急啊,中文字符串比较问题 Socket Server如何实现多网卡监听 临时表问题 毕业设计问题 怎么编写SQL语句去掉多余的空格 为什么我的delphi6不能调试 @@@@@@散分:和LP认识3年了,感谢LP!大家来祝福一下吧,:)@@@@@@ 當程序出錯時, 不要你去按下出錯的提示窗口,程序自動按下,繼續執行下面的代碼? 怎麼作 如何在sql语句中加入过滤后的cxgrid代码呢? 两个变量计算再比较,用sql和delphi写要怎么样? ADO连ACCESS问题,出错
如:
long C1ctrl::r()
{
return 1222; }
结果在中调用此函数结果不正确.
我的调用方法如下:
控件名为:c1 var
ret:integer;
ret:=c1.r(); 调试结果为很大的一个值
如果我把返回值放在参数表中,运行结果是正确的,
如:
void CMyAcxCtrl::f1(strTmp inStr,long reply)
{
.....
reply:=122;
}
在delphi 下测试没问题.而一旦将采用以下方式:
long CMyAcxCtrl::f1(strTmp inStr)
{
......
return 122;
} 在delphi 下测试
var
ret:Longint;
.......... ret:= myacx1.f1('111');
结果不对;而且我试过其他类型的返回值都不对.
束手无措.