从我所了解的有关运行时错误438,它表示二进制兼容性问题,如引用的ActiveX库与分布式库不兼容。我可以看到没有理由为什么这个运行时错误会产生基本的VB6程序,如CLng
或Round
。运行时错误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提供的开发环境特有的怪癖。
但不管'CLng'是否将它转换为'Long'? 'Round'返回一个'Variant'类型,所以我没有看到让编译器搞清楚演员的任何问题。 – 2011-03-18 18:21:12