如何在.net c# VS 2012的ATL (COM)项目中使用多个idl文件



我是c++/COM的新手。我已经创建了一个atlcom项目与回调机制发送消息到托管方。它有一个idl文件(sample1.idl),该文件公开了"n"个方法,因此托管环境可以访问它。现在我想添加另一个。idl(sample2.idl)文件到该项目。.tlb是为sample1 &Sample2和构建成功。在浏览。dll时,我找不到样本2。Idl相关的东西。我怀疑.tlb是由' sample2. b生成的。

在ATL (COM)项目中可以有多个IDL吗?

与许多本机构建环境一样,ATL的默认设置是将类型库作为资源嵌入到DLL中。你可以在Visual Studio中看到(需要零售版),使用File + Open + File并选择DLL。打开"TYPELIB"节点,您将看到一个资源ID #1的类型库。这是Visual Studio在使用Add Reference时看到的。

大多数使用类型库的构建工具只会查找一个资源。Visual Studio也不例外。它还可以在其项目文件中只编码一种类型库。您也许可以通过在Add Reference对话框中选择第二个.tlb文件来使其工作。尽管你现在很可能会在你的ATL项目中遇到更多的问题,比如忘记在你的.rgs文件中注册第二个类型的库。

如果不提示第二个IDL文件可能包含什么,很难给出适当的建议。通过合并它们或使用IDL中现有的支持导入其他. IDL文件或类型库来避免麻烦。

最新更新