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

时间:2011-09-10 16:09:48

标签: c# visual-studio-2008 vb6 reference activex

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

那里的开发人员告诉我,过去他们已经能够这样做但是现在我们对VB6 DLL进行了更改并且不得不重新编译它。

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

我尝试了“浏览”和“COM”标签,您可以在其中添加参考,没有运气。

我们是否需要某种TLB才能添加它?

感谢。

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

他是对的,你可以从命令提示符那样做。

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

    regsrv /u foo.dll
    regsrv foo.dll
从命令提示符

。但32位适用于regsrv32!

答案 2 :(得分:0)

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