我们确实有至极使用MIDL工具来创建特定头/ IID和代理文件的项目。这些文件被编译并使用后生成步骤的呼叫执行nmake项目的其余部分连接。

是否有可能使用预编译头与茨艾伦IDL生成的文件?我怎样才能注入#include "stdafx-h"和删除其他包括头?

有帮助吗?

解决方案

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

它不会删除其他头,但是这是没有必要的使用预编译的头......所有你想预编译的头应该由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.h包括警卫的,让他们在a.cpp是不是一个问题..

其他提示

“stdafx.h中” 仅仅是一种惯例。如果你知道YOUT生成的源文件总是有头包括一个标准的前缀,你能说出他们最后在/Yu开关(使用预编译头)。为了创建PCH,创建具有只是那些固定报头的单cpp文件,并用/Yc编译第i。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top