2

誰か raw_interfaces_only が実際に何をするのか説明してもらえますか?

例えば、

#import <xyz.dll> raw_interfaces_only 

msdn サイトで提供されているワンライナーの説明を理解できません。

4

2 に答える 2

4

MSDNによると

エラー処理ラッパー関数およびそれらのラッパー関数を使用するプロパティ(C ++)宣言の生成を抑制します。

raw_interfaces_only属性により、非プロパティ関数の命名に使用されるデフォルトのプレフィックスも削除されます。通常、プレフィックスはraw_です。この属性が指定されている場合、関数名はタイプライブラリから直接取得されます。

この属性を使用すると、タイプライブラリの低レベルのコンテンツのみを公開できます。

この属性がある場合とない場合でビルドし、生成された.tlhファイルを比較して違いを確認することもできます。

#import <imapi2.dll> // --> imapi2-without.tlh
#import <imapi2.dll> raw_interfaces_only // --> imapi2-with.tlh

ここに画像の説明を入力してください

このraw_interfaces_only属性により、生成されるラッパーコードが少なくなります。

于 2012-08-09T10:04:16.230 に答える
0

さて、Google からの最初の結果を見ると、lazy linkは「属性」のようです。

そのページから:

#import  "filename" [attributes]
#import  <filename> [attributes]

その後、 raw_interfaces_only属性が何をするかを自分で読み取ることができます。

raw_interfaces_only 属性は、エラー処理ラッパー関数の生成と、それらのラッパー関数を使用する __declspec(property) 宣言を抑制します。

これは単純なケースのように思えますが、ライブラリのインポートによる混乱を減らし、ラッパーコードを減らし、エラーチェックを自動的に行うのに役立ちます。

于 2012-08-09T10:06:46.650 に答える