2011-03-18 196 views
1

从我所了解的有关运行时错误438,它表示二进制兼容性问题,如引用的ActiveX库与分布式库不兼容。我可以看到没有理由为什么这个运行时错误会产生基本的VB6程序,如CLngRound运行时错误438当使用VB6程序

Dim X as Integer 
Dim Y as Single 
Dim result as Long 

X = GetX() ' Returns 0 
Y = GetY() ' Returns 0.75 

result = CLng(X/Y) ' throws runtime error 438 
result = Round(X/Y) ' throws runtime error 438 

有什么明显的我在这里失踪?

编辑:

我已经证实,问题就出在这个项目,而不是代码。似乎这种错误/情况是通用电气公司Proficy iFIX 8.1提供的开发环境特有的怪癖。

回答

2

我刚刚在vb6中试过你的代码,它工作正常。

你提到在您的文章2个错误,438和483 VB6帮助提供了以下描述的那些错误:

对象不支持此属性或方法(错误438)

打印机驱动程序不支持指定的属性(错误483)

我看不出任何这些错误的被提出

-1

针对Single的整数除法将返回一个整数。您的变量“结果”声明为long。使用整数除法,您还应该使用其他斜杠(\)。

+0

但不管'CLng'是否将它转换为'Long'? 'Round'返回一个'Variant'类型,所以我没有看到让编译器搞清楚演员的任何问题。 – 2011-03-18 18:21:12