C++ ライブラリがあり、そのライブラリの COM インターフェイスを自動生成しています。そのため、IDL ファイルを自動生成したところ、すべて正常に動作していました。しかし、COM にさらに多くのインターフェイスが追加されると、エラーが発生し始めました。
1> Total Format String size = 69336
1> midl : error MIDL2379: the compiler reached a limit for a format string representation. See documentation for advice.
VS2008 と VS2010 の両方でこのエラーが発生しています。
この問題を解決する方法を教えてください。インターネット全体を検索しましたが、適切な解決策が見つかりませんでした。Microsoft Connectで報告されたバグが 1 つありますが、ステータスはクローズされています。彼らが提案する回避策の 1 つは、IDL ファイルを分割することです。これは、私の場合は不可能であり、インターフェイスが相互に依存しているためです。
サンプルの IDL ファイルSampleGenerated.idlをアップロードしました
midl へのコマンド ラインは次のとおりです。
/W1 /nologo /char signed /env win32 /h "SampleGenerated_h.h" /tlb "Debug\SampleGenerated.tlb"