我在以下
中遇到以下类型不匹配错误 IF obj.propery THEN
...
END IF
我正在使用的代码是可视源安全的,当其他开发人员运行相同的项目时,代码运行时没有错误。该属性实际上是一个问题所在的字符串。当我调试和测试属性时,即
?obj.propery = True
没有抛出任何错误,这有点奇怪。如果我将光标放在属性上,则显示“True”。我已经对此事进行了一些搜索并发现这可能与OPTION STRICT有关,但是我有与其他开发人员相同的代码版本而且OPTION STRICT没有关闭,它没有被改变在代码中。是否有任何其他设置可能会影响运行时代码的执行?
答案 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是否为空是明智的....