2011-12-21 13 views
0

MIDL:エラーMIDL9008私はVS 2008で次のエラーを取得しています

MIDL:エラーMIDL9008:内部コンパイラの問題は - 回避策を見つける方法の提案のマニュアルを参照してください。

MIDL:アサーションに失敗しました:(RC < _MAX_DIR)& &(RC = 0!)、ファイルd:\ Longhornの\ COM \ RPC \ MIDL \フロント\のfilehndl.cxx、ライン821

問題私は<-----が付いているライン上のファイル%PROGRAMFILES%\Microsoft SDKs\Windows\v7.1\Include\Guiddef.hに次のコードによって引き起こされる:「GUID」を名前の変更や削除

#ifndef GUID_DEFINED 

#define GUID_DEFINED 

#if defined(__midl) 

typedef struct { 

     unsigned long Data1; 
     unsigned short Data2; 
     unsigned short Data3; 
     byte   Data4[ 8 ]; 

} GUID;  <------ 

#else 

typedef struct _GUID { 

     unsigned long Data1; 
     unsigned short Data2; 
     unsigned short Data3; 
     unsigned char Data4[ 8 ]; 

} GUID; 

#endif 

#endif 

は、内部コンパイラの問題を解決するが、もちろん他の多くの原因となります。使用されているコードおよびmidl.exe実行ファイル(WinSDK v6.0)は、このエラーが発生しない他のコンピュータのものと同じです。誰もがWindowsを再インストールするよりも良いアイデアを持っていますか?

答えて

0

本当にひどく壊れたものがあるようです。 WindowsとVisual Studioを再インストールすると助けになりました。

1

Windows 8.1 SDKをすべてのサブコンポーネントにインストールした後、またはVisual Studio 2015を更新すると、私のmidl*ファイルがある時点で破損してしまいました。上書きされました。

それ以来、私はMIDL9008というプロジェクトをコンパイルしていましたが、その前に問題ありませんでした。 Midlc.exeは、特定のプロジェクトをビルドしようとするとクラッシュすることさえありました。

解決策は、問題が存在しないし、別のマシンから同じファイルと

C:\Program Files (x86)\Windows Kits\8.1\bin\x86 

(because that's where midlc.exe and midl.exe were starting from, verified by using procmon)

からmidl*ファイルを置き換えることでした。

驚いたことに、報告されたバージョン番号は同じですが、同じフォルダのmidl*ファイルのファイルサイズは異なりました。これは、それらを置き換えることで何かを修正する可能性があるという明確な指標でした。

ファイルをコピーすると、(midl.exe, midlc.exe, midlrt.exe, midlrtmd.dll)が問題を解決しました。非常にうれしいことに、この厄介な問題を解決するためにWindowsを再インストールする必要はありませんでした。

+0

お返事ありがとうございます。他の誰かがこのソリューションが自分のために働いていることを確認できれば、コメントに私に教えてください。私は答えとしてマークします。 –

関連する問題