ATL“实现接口向导”
我在VC++ 2005中创建了ATL COM服务器。我想实现一些库(*.olb)中定义的一些接口。我知道如果我 #import 这个 olb (在 .tlh.tli 中)我会看到界面。但我无法使用“实现接口向导”为接口创建存根实现,因为“接口”列表中不存在该接口(“注册表”和“文件”选项)。为什么会出现这样的情况呢?以及如何自动生成存根实现。提前致谢。
I created ATL COM-server in VC++ 2005. I want to realize some interface defined in some library (*.olb). I know I will see the interface if I #import this olb (in .tlh.tli). But I cannot create stub realization for the interface with "Implement interface wizard" because this interface is absent in "Interfaces" list (both for "Registry" and "File" options). Why is it possible such situation? And how do I automathically generate stub realization. Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以编辑 .idl 文件并使用。
但这很尴尬,但是 importlib 语句必须出现在 library 块内。这是必要的,因为类型库可能包含组件类定义。
您真正想要的是使用 import 语句导入创建类型库的 IDL。减去 coclasses。如果您没有 IDL,您可以使用 OleView.exe、File + View Typelib 重新创建它。将所需的接口定义复制并粘贴到您自己的 .idl 文件中,然后在 IDL 中使用 import MIDL 语句。
You could edit the .idl file and use
That's awkward however, the importlib statement must appear inside the library block. This is necessary because the type library probably contains coclass definitions.
What you really want is to use the import statement to import the IDL that created the type library. Minus the coclasses. If you don't have the IDL, you can re-create it with OleView.exe, File + View Typelib. Copy and paste the interface definitions you want in your own .idl file, then use the import MIDL statement in your IDL.
我在项目中发现了一个错误。图书馆一片混乱。
I found a bug in the project. It was a mess with libraries.