1

你能帮忙解决以下问题吗

我尝试在我的代码中使用 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 路径创建对象。

请帮忙,谢谢:吉姆

4

2 回答 2

2

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

它是一个名为 CreateObjectFromFile() 的函数,它有帮助。

CreateObjectFromFile("C:\somepath\Some.dll", "SomeClass")
于 2011-12-29T11:22:29.197 回答
1

我遇到了同样的问题,并以这种方式解决了它:

参考旧版本:

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

参考新版本:

Set co = CreateObject("SomeClass.Object.5.0")
于 2012-08-31T12:16:56.103 回答