将 VB6 ActiveX DLL 引用添加到 VS2008 项目

发布于 2024-12-04 02:28:52 字数 346 浏览 0 评论 0原文

在工作中,我们有一个 VB6 项目(ActiveX DLL),我们需要能够将其添加为另一个 VS2008 C# 项目的引用。

那里的一位开发人员告诉我,过去他们可以这样做,但现在我们对 VB6 DLL 进行了更改,并且必须重新编译它。

因此,我们需要更新 VS2008 项目中的引用,但是当我们尝试将对 VB6 DLL 的引用添加回(删除旧引用后)到 VS2008 项目时,我们得到一个黄色的“!”新添加的引用上的图标,然后当我们构建时,VS2008 说找不到该引用。

我尝试了“浏览”和“COM”选项卡,您可以在其中添加参考,但没有成功。

我们是否需要某种 TLB 才能添加它或其他东西?

谢谢。

At work, we have a VB6 project (ActiveX DLL) that we need to be able to add as a reference to another VS2008 C# project.

A developer there tells me that in the past, they have been able to do so but now we made a change to the VB6 DLL and had to recompile it.

As such, we need to update the reference in the VS2008 project but when we try to add the reference to the VB6 DLL back (after removing the old reference) to the VS2008 project, we get a yellow "!" icon on the newly added reference and then when we build, VS2008 says the reference cannot be found.

I tried the "Browse" and "COM" tabs where you can add reference, no luck.

Do we need some kind of TLB to be able to add it or something ?

Thanks.

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

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

发布评论

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

评论(3

如何视而不见 2024-12-11 02:28:52

您需要从命令提示符执行以下操作:

#CD to wherever the dll is located
regsrv32 /u foo.dll
regsrv32 foo.dll

这将取消注册旧的 com 对象并注册新的。

You need to do the following from a command prompt:

#CD to wherever the dll is located
regsrv32 /u foo.dll
regsrv32 foo.dll

This will unregister the old com object and register the new one.

浊酒尽余欢 2024-12-11 02:28:52

他是对的,您可以从命令提示符处执行此操作。

但请记住,您的 Active-X 控件 DLL 可能是 16 位的,因此请

    regsrv /u foo.dll
    regsrv foo.dll

从命令提示符处使用。但 32 位的 regsrv32 工作得很好!

He's right, you could do that from command prompt.

Remember though, your Active-X control DLL could be 16-bit, so use

    regsrv /u foo.dll
    regsrv foo.dll

from command prompt. But 32-bit works fine for regsrv32!

诗笺 2024-12-11 02:28:52

我使用了 OLE/COM 对象查看器(包含在 Windows SDK 6.0A 中),然后我在“所有对象”中看到了一堆 COM 条目,即:MyDLLName.className,其中一些条目指向一个不再存在的 DLL 文件。删除了 Windows 注册表中所有指向已删除 DLL 的相关 COM 条目,并保留了所有指向现有 DLL 的条目,然后我可以将其成功导入到我的 VC# 项目中。

I used OLE/COM object viewer (included in Windows SDK 6.0A) then I saw a bunch of COM entries in "All objects" ie: MyDLLName.className and some were pointing to a DLL file which did not exist anymore. Deleted all the relevant COM entries in the Windows registry that pointed to the deleted DLL and left all the ones which pointed to the existing DLL and then I could import it successfully in my VC# project.

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