2011-03-18 66 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