可以使用与MIDL生成的文件预编译头?
-
22-09-2019 - |
题
我们确实有至极使用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.h
和b.h
。然后创建stdafx.h文件:
#include <a.h>
#include <b.h>
然后使用/ FI选项,这个stdafx.h中包括作为第一个文件到a.cpp
。如果文件a.h
和b.h
了包括警卫的,让他们在a.cpp
是不是一个问题..
其他提示
“stdafx.h中” 仅仅是一种惯例。如果你知道YOUT生成的源文件总是有头包括一个标准的前缀,你能说出他们最后在/Yu
开关(使用预编译头)。为了创建PCH,创建具有只是那些固定报头的单cpp文件,并用/Yc
编译第i。
不隶属于 StackOverflow