VB CreateObject dll歧义

时间:2011-12-28 18:21:39

标签: dll ambiguity createobject

你能帮忙解决以下问题吗

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

Set co = CreateObject("SomeClass.Object")

即使我在Tools->最新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路径创建对象。

请帮助,谢谢:吉姆

2 个答案:

答案 0 :(得分:2)

我可以在中间找到溶剂,

这是一个名为CreateObjectFromFile()的函数,可以帮助。

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

答案 1 :(得分:1)

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

参考旧版本:

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

参考新版本:

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