使用VB6程序时运行时错误438

时间:2011-03-18 16:32:44

标签: vb6 runtime-error

根据我对运行时错误438的理解,它表示二进制兼容性问题,如引用的ActiveX库与分布式库不兼容。我没有理由为CLngRound等基本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 个答案:

答案 0 :(得分:2)

我刚刚在vb6中尝试了你的代码并且工作正常。

你在帖子中提到了2个错误,438和483。 VB6帮助提供了以下有关这些错误的描述:

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

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

我看不出这些错误是如何产生的

答案 1 :(得分:-1)

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