我有一个包含多个MIDL文件的项目,尽管它们没有改变,但VS总是重新编译。我已经尝试了几个技巧,包括将项目目录放在包含路径等但没有任何帮助。问题是生成的头文件会影响其他“子项目”的重新编译,导致不必要的组件重建。
对此有何解决方法?我甚至尝试使用自定义构建工具(使用midl.exe),这通常适用于其他类型的问题,但使用midl.exe表现出相同的确切行为,即MIDL始终被重新编译。
有点令人沮丧......
答案 0 :(得分:2)
解决。问题是编译的所有IDL文件都生成了相同的dlldata.c文件,这意味着每个IDL编译都会将其搞砸为下一个IDL文件。通过将DllData文件(MIDL /输出)的显式路径设置为%(Filename)_dlldata.c,它可以按预期工作。