在工作中,我们有一个VB6项目(ActiveX DLL),我们需要能够添加它作为对另一个VS2008 C#项目的引用。
那里的开发人员告诉我,过去他们已经能够这样做但是现在我们对VB6 DLL进行了更改并且不得不重新编译它。
因此,我们需要更新VS2008项目中的引用,但是当我们尝试将对VB6 DLL的引用(在删除旧引用之后)添加到VS2008项目时,我们得到一个黄色的“!”新添加的引用上的图标,然后在我们构建时,VS2008表示无法找到引用。
我尝试了“浏览”和“COM”标签,您可以在其中添加参考,没有运气。
我们是否需要某种TLB才能添加它?
感谢。
答案 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#项目中成功导入它。