每次尝试编译使用COM的Visual C++(Visual Studio 2010)项目时,都会看到MIDL2398错误。该项目在我的Windows 7开发人员计算机和Windows Server 2008构建计算机上构建得非常好,但不在Windows Server 2012构建计算机上构建。在Windows 2012上使用Visual Studio 2010创建MIDL2398错误
,我发现这个网站有关的各种MIDL编译器错误:http://blog.yezhucn.com/midl/compiler_errors.htm
但是,我想它的建议对于MIDL2398,我验证了“midlc.exe”是在同一目录“MIDL.EXE”和这两个版本都是相同的版本(都是Windows SDK v7.1中的文件版本:7.0.555.1产品版本:6.1.7600.16385)。
我猜它与Windows Server 2012有关,但我不知道。
有没有人能够获得Windows SDK v7.1 MIDL编译器在Windows Server 2012上工作?或者,有谁知道还有什么可能导致MIDL2398?
从Visual Studio 2010命令提示符中,键入“where midl * .exe”,并验证是否仅找到这两个文件。 SysInternals的ProcMon是验证是否使用了正确的EXE文件的另一种方法。 –
我在为我正在构建的项目的预构建事件中执行了该操作,并且该命令为我提供了Windows SDK v7.1 midl EXE的路径,这正是我所期望的。我还更改了项目设置以尝试使用Windows SDK v7.0A(包含在Visual Studio 2010中),where命令正确报告了v7.0A版本的midl EXE的路径,但我仍然得到相同的midl错误我是否针对Windows SDK v7.0A或v7.1进行编译。同一台Windows 2012虚拟机上的同事尝试使用Windows SDK版本8进行编译,但也失败了。 – MikeW