【问题标题】:Relationship between IDL and c++ source fileIDL与c++源文件的关系
【发布时间】:2011-10-25 11:06:32
【问题描述】:

为了了解接口,我正在尝试编写一个测试项目来实现 IDispatch 接口。 到目前为止,我已经:

  • 在 Visual Studio 2010 中创建了一个 MFC dll 项目
  • 写了下面的IDL

    [ uuid(68B0FAE7-3828-415D-94B0-720A007311FF), version(1.0) ]
    library Test
    {
    importlib("stdole32.tlb");
    importlib("stdole2.tlb");
    [ 
        uuid(DD35D282-ABEF-4411-B3D1-B4FD848516A5)  
    ]
    
    interface _Test : IDispatch
    {
    
    };
    };
    

创建了一个名为 Test.h 的 C 头文件,但我想知道如何声明它与 IDL 链接。任何帮助或你好世界教程都会很棒。谢谢

【问题讨论】:

  • 创建 .idl 文件后,您需要使用 MIDL 编译器创建对应的头文件和代理文件。
  • Test.h 是 IDL 文件的产物。连同类型库和代理/存根代码,可选。现在您需要真正实现接口的方法。这需要先添加一些。您将 IDispatch 实现留给普通实现,例如 ATL 的 IDispatchImpl。

标签: c++ visual-studio-2010 com interface


【解决方案1】:

你可以吗

  • 中间编译器

    它能够在 c(或 C++?不记得)中生成头文件/源代码,但最重要的是它会为您提供类型库 (tlb) 文件

  • #import directive

    将为类型库内容生成 c++ 定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2017-03-04
    • 2010-11-21
    • 2011-10-12
    • 2013-09-12
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多