VB.NET CreateObject dll 歧义

发布于 2024-12-23 11:08:06 字数 623 浏览 1 评论 0原文

您可以帮助解决以下问题吗?

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

Set co = CreateObject("SomeClass.Object")

即使我在“工具”->“引用”中为最新的 Some.dll 创建了引用,它也会调用最旧的 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 路径创建对象。

请帮忙,谢谢:吉姆

could you please help with the following

I try to use Some.dll version 5.0 within my code.
However, Excel has multiple reference for the same dll, with earlier versions like 4.0
If I run:

Set co = CreateObject("SomeClass.Object")

even if I created a reference in Tools->References for the newest Some.dll, it calls one of the oldest dll, that does not have some functionality.

I do not have admin right to change registry, remove programs from my computer.

Is it possible somehow set reference to the newest version dll?

I tried:

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")

however, it is not working ("ActiveX... can't create object")

and looked through all the net, but could not find advise, how to create object with a specific dll path.

Please help, thanks: Jim

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦亿 2024-12-30 11:08:06

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

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

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

I could find sollution inbetween,

it is a function called CreateObjectFromFile() that helps.

CreateObjectFromFile("C:\somepath\Some.dll", "SomeClass")
夏の忆 2024-12-30 11:08:06

我遇到了同样的问题,并通过以下方式解决:

参考旧版本:

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

参考新版本:

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

I've met the same problem, and solved it this way:

Reference to old version:

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

Reference to new version:

Set co = CreateObject("SomeClass.Object.5.0")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文