gpt4 book ai didi

c++ - 可以将预编译 header 与 MIDL 生成的文件一起使用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:20 25 4
gpt4 key购买 nike

我们确实有一个项目使用 MIDL 工具来创建特定的头文件/iid 和代理文件。这些文件使用调用 nmake 的构建后步骤进行编译并与项目的其余部分链接。

IDL 生成的文件可以使用预编译头文件吗?如何注入(inject) #include "stdafx-h" 并删除其他包含的 header ?

最佳答案

使用 /FI option (Force Include): "此选项与在命令行、CL 环境变量或命令文件中指定的每个源文件的第一行的#include 指令中用双引号指定文件具有相同的效果”

它不会删除其他 header ,但这对于要使用的预编译 header 不是必需的...您要预编译的所有 header 都应包含在 stdafx.h 中。然后,如果文件有包含保护,那么当它们再次包含在源中时就不会成为问题。

示例

生成的a.cpp文件:

#include <a.h>
#include <b.h>
//rest of the code

假设您要预编译a.hb.h。然后创建文件 stdafx.h:

#include <a.h>
#include <b.h>

然后使用/FI 选项将此 stdafx.h 作为第一个文件包含到 a.cpp 中。如果文件 a.hb.hinclude guards , 将它们留在 a.cpp 中不是问题...

关于c++ - 可以将预编译 header 与 MIDL 生成的文件一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1593231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com