根据我对运行时错误438的理解,它表示二进制兼容性问题,如引用的ActiveX库与分布式库不兼容。我没有理由为CLng
或Round
等基本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提供的开发环境特有的怪癖。
答案 0 :(得分:2)
我刚刚在vb6中尝试了你的代码并且工作正常。
你在帖子中提到了2个错误,438和483。 VB6帮助提供了以下有关这些错误的描述:
对象不支持此属性或方法(错误438)
打印机驱动程序不支持指定的属性(错误483)
我看不出这些错误是如何产生的
答案 1 :(得分:-1)
针对Single的整数除法将返回一个整数。您的变量“result”声明为long。对于除法中的整数,您还应该使用另一个斜杠(\)。