VB6类型不匹配错误

时间:2011-01-21 09:13:06

标签: vb6 type-mismatch

我在以下

中遇到以下类型不匹配错误
   IF obj.propery THEN
    ...
    END IF

我正在使用的代码是可视源安全的,当其他开发人员运行相同的项目时,代码运行时没有错误。该属性实际上是一个问题所在的字符串。当我调试和测试属性时,即

?obj.propery = True

没有抛出任何错误,这有点奇怪。如果我将光标放在属性上,则显示“True”。我已经对此事进行了一些搜索并发现这可能与OPTION STRICT有关,但是我有与其他开发人员相同的代码版本而且OPTION STRICT没有关闭,它没有被改变在代码中。是否有任何其他设置可能会影响运行时代码的执行?

4 个答案:

答案 0 :(得分:3)

令我感到震惊的是,您的类型不匹配错误可能有完全不同的原因,尤其是在您访问对象属性时。当我出于某种原因指向注册的不同DLL时,我遇到了这个错误。你会发现VB在构建它时会“动态地”注册一个DLL,所以你最终可能会访问你没想到的代码。这可能不是您的问题,但值得探讨。

答案 1 :(得分:2)

这与VB6无关,它与XP Mode和使用我的用户帐户来自另一个域而不是XPMUser。当我使用XPMUser应用程序运行这是非常奇怪的,我不知道为什么会这样。如果有人有理由我愿意听。

答案 2 :(得分:1)

所以你确定这不是case of a boolean being Vrai

答案 3 :(得分:0)

我倾向于在你的IF条件中更明确

IF isempty(obj.property) = false AND isnull(obj.property) = false

<强> BUT

在开始访问其属性之前,首先检查obj是否为空是明智的....