在 C++ 项目中包含 .idl 文件

Posted

技术标签:

【中文标题】在 C++ 项目中包含 .idl 文件【英文标题】:Including a .idl file in a C++ project 【发布时间】:2011-10-12 07:24:21 【问题描述】:

我正在用 C++ 构建一个项目,它使用 DirectShow 的视频捕获库连接到相机。视频卡制造商 (BlackMagic) 提供了 .idl(接口定义语言)文件,可将新的捕获图添加到标准集合中。

问题是,我从来没有遇到过 .idl 文件,而且非常模糊的“包含文件”方向并没有多大帮助。用#include 指令包含它不会引发任何错误,但程序也无法提取我认为它打算添加的各种定义,因为它是我被告知要包含在项目中的唯一文件。

我的问题是:如何在项目中包含 .idl 文件?

【问题讨论】:

很可能您不需要将 .IDL 包含到您的项目中,或者有一种更简单和/或更好的方法来实现您想要实现的任何目标。 【参考方案1】: 例如:你有一个 AFileName.idl 1.将AFileName.idl添加到您的项目中:右键单击项目->添加->现有项目... 2.在项目中的AFileName.idl上单击右键->编译 3.第2步会生成AFileName_h.h,AFileName_i.c,AFileName_p.c,... 4. 现在您可以#include "AFileName_h.h" 并使用它,您可能还需要 将 AFileName_i.c 或其他生成的文件添加到您的项目中 取决于你的需要。

观察:针对 VS2008 描述了这些步骤,但我认为 VS2010 在这方面没有什么不同。

【讨论】:

如果您确实将 .c 文件添加到您的项目中,您可能还必须更改文件的 C/C++ |高级 | “编译为”属性为“编译为 C 代码 (/TC)”,并且可能还必须设置文件的 C/C++ |预编译头文件 | “预编译头”属性改为“不使用预编译头”

以上是关于在 C++ 项目中包含 .idl 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中包含来自单独文件夹的文件

在 Netbeans 7.0 中包含 C++ 库

如何在 Visual Studio C++ 的 dll 项目中包含一个库

在 cmake c++ 项目中包含库的首选方法是啥?

在 Microsoft Visual Studio 2015 的 C++ 项目中包含 Armadillo C++ 库

在cmake的所有cpp文件中包含c ++标头[重复]