Ошибка выполнения 438 при использовании процедур VB6 - PullRequest
1 голос
/ 18 марта 2011

Из того, что я понимаю об ошибке 438 во время выполнения, это указывает на проблемы двоичной совместимости, такие как указанная библиотека ActiveX не совместима с распределенной библиотекой.Я не вижу причин, по которым эта ошибка во время выполнения будет генерироваться для базовых процедур VB6, таких как CLng или Round.

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 от General Electric.

Ответы [ 2 ]

2 голосов
/ 20 марта 2011

Я только что опробовал ваш код в vb6, и он работал нормально.

Вы упоминаете 2 ошибки в своем посте, 438 и 483. Справка VB6 дает следующие описания этих ошибок:

Объект не поддерживает это свойство или метод (Ошибка 438)

Драйвер принтера не поддерживает указанное свойство (Ошибка 483)

Я могуне вижу, как возникает какая-либо из этих ошибок

0 голосов
/ 18 марта 2011

Целочисленное деление на единицу вернет целое число.Ваша переменная «результат» объявляется как долго.С целыми числами в делении, вы должны использовать и другую косую черту (\).

...