繁体   English   中英

可以对MIDL生成的文件使用预编译的标头吗?

[英]Possible to use precompiled headers with MIDL generated files?

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

是否可以对IDL生成的文件使用预编译的标头? 如何注入#include "stdafx-h"并删除其他包含的标头?

使用/ FI选项 (强制包含):“此选项的作用与在CL环境变量的命令行中指定的每个源文件的第一行的#include指令中用双引号指定文件的效果相同,或在命令文件中。”

它不会删除其他标头,但是使用预编译标头不是必需的...您要预编译的所有标头都应包含在stdafx.h中。 然后,只要文件具有包含防护,则将它们再次包含在源文件中就不会有问题。

生成一个a.cpp文件:

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

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

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

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

“ stdafx.h”仅是一个约定。 如果您知道生成的源文件始终具有包含标头的标准前缀,则可以在/Yu开关中命名它们的最后一个(使用预编译标头)。 要创建PCH,请仅使用固定的标头创建一个.cpp文件,然后使用/Yc编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM