ATL“实现界面向导”
Posted
技术标签:
【中文标题】ATL“实现界面向导”【英文标题】:ATL "Implement interface wizard" 【发布时间】:2011-03-02 03:53:26 【问题描述】:我在 VC++ 2005 中创建了 ATL COM-server。我想实现在某个库 (*.olb) 中定义的一些接口。我知道如果我#import 这个olb(在.tlh.tli 中)我会看到界面。但是我无法使用“实现接口向导”为接口创建存根实现,因为“接口”列表中不存在该接口(“注册表”和“文件”选项)。为什么会出现这种情况?以及如何自动生成存根实现。提前致谢。
【问题讨论】:
【参考方案1】:您可以编辑 .idl 文件并使用
[
...
]
library Something
importlib("somelibrary.olb");
...
然而,这很尴尬,importlib 语句必须出现在 library 块内。这是必要的,因为类型库可能包含 coclass 定义。
您真正想要的是使用 import 语句来导入创建类型库的 IDL。减去 coclasses。如果您没有 IDL,您可以使用 OleView.exe、File + View Typelib 重新创建它。将所需的接口定义复制并粘贴到您自己的 .idl 文件中,然后在您的 IDL 中使用 import MIDL 语句。
【讨论】:
我在项目中发现了一个错误。图书馆一团糟。无论如何,谢谢你的oleview方式。我真的很喜欢。【参考方案2】:我在项目中发现了一个错误。图书馆一团糟。
【讨论】:
以上是关于ATL“实现界面向导”的主要内容,如果未能解决你的问题,请参考以下文章
错误 C2664:无法将参数 2 从 'const ATL::CAdapt<ATL::CComPtr<IZipFileEntry>> *' 转换为 'ATL::CAdapt&l