每次嘗試編譯使用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