アプリケーションを VS2008 から VS2010 に移行することを検討しています。
「属性付きプログラミング」でいくつかの COM オブジェクトを生成すると、IDL が自動的に生成されます。
両方のファイルのインポート ディレクティブが異なり、VS2010 でコンパイルが失敗します。
VS2008 では、次のようなものが生成されます。
import "docobj.idl";
VS 2010 で
import "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wincrypt.idl";
import "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\exdisp.idl";
import "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\shldisp.idl";
import "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\prsht.idl";
import "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\mshtmhst.idl";
import "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\mshtml.idl";
import "c:\program files (x86)\microsoft sdks\windows\v7.0a\include\dimm.idl";
import "c:\program files (x86)\microsoft sdks\windows\v7.0a\include\dispex.idl";
VS2010 で IDL をコンパイルすると、次のエラーが生成されます。
20> Microsoft (R) 32b/64b MIDL Compiler Version 7.00.0555
20> Copyright (c) Microsoft Corporation. All rights reserved.
20> Processing .\_my_idl.idl
20> _my_idl.idl
20> Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wincrypt.idl
20> wincrypt.idl
20>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wincrypt.idl(47): error MIDL2025: syntax error : expecting a type specification or a storage specifer or a type qualifier near "WCHAR"
20>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wincrypt.idl(47): error MIDL2026: cannot recover from earlier syntax errors; aborting compilation
20>LINK : fatal error LNK1240: failed to compile IDL content
「wincrypt.idl」インポート ディレクティブを手動で削除すると、コンパイル エラーが削除されますが、idl は自動生成されるため、これは解決策ではありません。
2 つの IDL が異なる理由と、インポート ディレクティブを追加する責任がある理由がわかりません。またはMIDLコンパイルエラーを修正する方法さえ。
何か案は ?
前もって感謝します。
最大。