我正在使用VS 2008为我们的大型VC++项目开发新的解决方案配置.我希望此配置使用多核构建标志/ MP.
但是,生成COM包装类的"#import"功能遍布代码库,使用/ MP时不支持此功能.
我理解为什么#import不起作用,我想知道是否有人遇到过这个问题以及他们是如何解决这个问题的?
我正在做以下事情:
在小型或超出帮助的项目上不使用/ MP标志.(也许我稍后再回来)
删除#import并将其替换为更标准的MIDL生成的标头(#include).这只是一些易于转换为旧学校COM的地方的选项.
创建一个新项目#imports剩余的库.首先进行构建.#Include它在之前#imported的所有位置创建的.tlh文件.
我很好奇是否有人有任何其他建议?此外,在最后一点(制作一个新项目并仅在那里使用#import) - 如果你做了这样的事情,你是怎么做到的?什么类型的项目,"源"是什么样的,你在哪里输出文件?你是怎么包括他们的?(你知道,为我做所有的想法!)
我有一个项目有两个源文件#import相同的文件.使用/ MP进行编译时,由于两个源文件同时尝试创建.tlb,因此偶尔会出现拒绝访问错误.我通过启用预编译的头文件并将#import添加到预编译的头文件源文件中来解决这个问题.
您可以将/ MP选项作为整体使用,然后使用/ MP1选项对单个文件进行例外处理.