无法添加COM DLL作为VS 2012 Project的参考

时间:2013-12-23 22:05:44

标签: visual-studio-2012 dll

我正在尝试添加使用Visual Studio .NET 2003 ATL COM项目构建的COM DLL,当我点击浏览并选择DLL时出现以下错误

A reference to 'MyCOM.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.

但是当我使用RegSvr32.exe注册它并使用References窗口中的COM窗格浏览它并添加它时,它可以正常工作。

如何在不必注册的情况下添加dll?

1 个答案:

答案 0 :(得分:1)

这不是那么容易实现,因为COM总是使用注册表来查找DLL。在代码中,您只使用其GUID而不是文件系统中的位置来引用库。幸运的是,这不完全正确(更多)。有两种可能来规避这个:

  • 使用Reg-Free COM,这要求您向可执行文件添加清单。这包含注册信息而不是注册表。谷歌免注册COM和清单。
  • 通常,也可以通过普通方式链接dll(使用lib文件)并使用简单的new-call创建“COM”-Object。但这要求您拥有完整的头文件。而且它不再使用COM了。