C++ プログラムで、.NET アウト オブ プロセス サーバーの TLB を #import しようとしています。
次のようなエラーが表示されます。
z:\server.tlh(111): エラー C2146: 構文エラー: ';' がありません 識別子「GetType」の前
z:\server.tlh(111): エラー C2501: '_TypePtr': ストレージ クラスまたは型指定子がありません
z:\server.tli(74): エラー C2143: 構文エラー: ';' がありません 「tag::id」の前
z:\server.tli(74): エラー C2433: '_TypePtr': 'inline' はデータ宣言では許可されていません
z:\server.tli(74): エラー C2501: '_TypePtr': ストレージ クラスまたは型指定子がありません
z:\server.tli(74) : 致命的なエラー C1004: 予期しないファイルの終わりが見つかりました
TLH は次のようになります。
_bstr_t GetToString();
VARIANT_BOOL Equals (const _variant_t & obj);
long GetHashCode();
_TypePtr GetType();
long Open();
GetType()、Equals() などの基本オブジェクト .NET オブジェクト メソッドを持つことにはあまり関心がありませんが、GetType() が問題を引き起こしているようです。
いくつかのGoogleの調査では、できる#import mscorlib.tlb
(またはパスに入れる)ことが示されていますが、それをコンパイルすることもできません。
任意のヒント?