代码之家  ›  专栏  ›  技术社区  ›  Phillip Wells

尝试创建COM对象时“未设置对象变量或带块变量”

  •  0
  • Phillip Wells  · 技术社区  · 16 年前

    我有一个VB6 dll,它试图使用以下代码行创建COM对象:

    Set CreateObj = CreateObject("OPSValuer.OPSValue")
    

    但是,此操作失败,错误为“未设置对象变量或块变量”。

    我可以在dcomcnfg中看到OPSValuer.OPSValue,它似乎注册得很好。有人知道是什么导致了问题吗?

    4 回复  |  直到 16 年前
        1
  •  3
  •   DMKing    16 年前

    它位于我的系统上:D:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin

        2
  •  2
  •   Kris Erickson    16 年前

    关于OleView,DMKing是正确的。还可以尝试查看中的控件 Dependency Walker ,任何缺少的依赖项都应该很快浮出水面。

    由于这是一个DCom组件,因此组件构造函数中也可能存在某些故障,如果构造函数中出现任何故障,您将收到该错误。这是本地DCom对象还是其他层上运行的对象?

    试着用标准的New来实例化它,看看它是否会给你一个不同的错误,而不是CreateObject。添加引用本身可能有助于确定错误。使用后期绑定而不是早期绑定有什么原因吗?

        3
  •  0
  •   Tomalak    16 年前

    该错误可能会在对象初始化例程中抛出。我在谷歌上找不到“OPSValuer.OPSValue”,这让我觉得是自定义代码遇到了bug。

        4
  •  0
  •   TAbdiukov miltonb    5 年前

    假设 OPSValuer.OPSValue 是用VB编写的组件,这可能是在 Class_Initialize 该组件的事件。如果您有组件的源代码,那么应该很容易调试。