2008-08-15 16 views
3

C++プログラムで、.NETのアウトオブプロセスサーバーの#import TLBを試しています。.NETのout-of-procサーバーの#importに関する問題

は私が得るようなエラー:

Z:\のserver.tlh(111):エラーC2146:構文エラー:見つかりません ';'識別子の前に 'メソッドGetType'

Z:\のserver.tlh(111):エラーC2501: '_TypePtr':欠落ストレージクラスまたは型指定子

Z:\ server.tli(74):エラーC2143:構文エラー: ';'がありません\のserver.tli(74):エラーC2433: '_TypePtr': 'タグ:: ID'

Z前に 'インライン' データ宣言に許可されていない

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(またはそれをパスに入れる)ことができますが、コンパイルすることはできません。

ヒント?

答えて

1

を追加しましたno_namespaceとraw_interfaces_only私の#importへ:またTLBEXP.EXEの代わりに、RegAsm.exeをを使用して

#import "server.tlb" no_namespace named_guids 

この問題を助けているようです。また

+0

TLBEXPは私を助けませんでした、raw_interfaces_onlyでした。コード例にraw_interfaces_onlyの代わりにnamed_guidsが含まれているのはなぜですか? –

0

、あなたのC#クラスは、この属性を持っていないことを確認してください。

[ClassInterface(ClassInterfaceType.AutoDual)] <は - たときに、より多くのofenly _TypePtr

+0

これはなぜ起こっているの任意のアイデアですか? –

1

とCのエラーを++起こすようですvsはcomのソースを に準拠させると、 // #import "C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorlib.tlb" のヒントになります。 これをStdAfxに追加する.h before #inport youOwn.tlb _Typeのような基本プロパティ、_ObjRefが追加されますprotoタイプのプロジェクトでed

私はそれがあなたの問題を解決すると思います。

が、大きな問題がある:あなたは誰が助けることができ

をプログラムし、あなたにのPtrを呼び出すとき everythinが行われた後、いくつかのランタイムエラーはそこに?

1

あなたが同様の問題についてここで

[ClassInterface(ClassInterfaceType.None)] 

あるanother discussionを使用する必要があるようです。

3
#import "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb" was the solution for me. 
関連する問題