【问题标题】:VB.NET CreateObject dll ambiguityVB.NET CreateObject dll 歧义
【发布时间】:2011-12-28 18:21:39
【问题描述】:

请您帮忙解决以下问题

我尝试在我的代码中使用 Some.dll 5.0 版。 但是,Excel 对同一个 dll 有多个引用,早期版本如 4.0 如果我跑:

Set co = CreateObject("SomeClass.Object")

即使我在 Tools->References 中为最新的 Some.dll 创建了一个引用,它也会调用最旧的 dll 之一,它没有某些功能。

我没有更改注册表、从我的计算机中删除程序的管理员权限。

是否有可能以某种方式设置对最新版本 dll 的引用?

我试过了:

Private Declare Function LoadLibrary Lib "kernel32"...
lb = LoadLibrary(C:\somepath\Some.dll) ' lb is the 5.0 version dll that should be used
set co = CreateObject("lb.Object")

但是,它不起作用(“ActiveX...无法创建对象”)

并浏览了所有网络,但找不到建议,如何创建具有特定 dll 路径的对象。

请帮忙,谢谢:吉姆

【问题讨论】:

    标签: vb.net dll ambiguity createobject


    【解决方案1】:

    我可以在两者之间找到解决方案,

    它是一个名为 CreateObjectFromFile() 的函数。

    CreateObjectFromFile("C:\somepath\Some.dll", "SomeClass")
    

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题,就是这样解决的:

      参考旧版本:

      Set co = CreateObject("SomeClass.Object.4.0")
      

      参考新版本:

      Set co = CreateObject("SomeClass.Object.5.0")
      

      【讨论】:

        猜你喜欢
        • 2014-11-15
        • 1970-01-01
        • 2012-09-01
        • 2016-06-28
        • 2021-11-30
        • 1970-01-01
        相关资源
        最近更新 更多