我正在尝试添加使用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
注册它并使用参考窗口中的COM窗格浏览它并添加它时,它工作正常 .
如何在不注册的情况下添加dll?
1 回答
这不是那么容易实现,因为COM总是使用注册表来查找DLL . 在代码中,您只使用其GUID而不是文件系统中的位置来引用库 . 幸运的是,这不完全正确(更多) . 绕过这有两种可能性:
使用Reg-Free COM,这要求您向可执行文件添加清单 . 这包含注册信息而不是注册表 . 谷歌免注册COM和清单 .
通常,也可以通过普通方式链接dll(使用lib文件)并使用简单的新调用创建"COM" -Object . 但这要求您拥有完整的头文件 . 而且它不再使用COM了 .