質問

MS ATL ライブラリを使用して書かれた COM オブジェクトがあります。IDL で多数の列挙型を宣言しましたが、MS COM オブジェクト ビューア ツールを使用してタイプ ライブラリを表示すると、それらは表示されません。問題は、欠落している列挙型が実際にはどの COM メソッドでもパラメータとして使用されていないことのようです。これらの列挙型を強制的に表示するにはどうすればよいでしょうか?

たとえば、IDL では次のようになります。

// Used by Foo method, so appears in the type library
typedef enum FOO
{
    FOO_1,
    FOO_2,
} FOO;

// Not used by any method, so won't appear in the type library
typedef enum BAR
{
    BAR_1,
    BAR_2,
} BAR;

[id(1)] HRESULT Foo([in] FOO eFoo);

問題の列挙型はどのメソッドでも直接使用されませんが、オブジェクトを使用するすべての人にとって依然として役立ちますが、エクスポートすることができません。

これを見たことがありますか?

役に立ちましたか?

解決

に入れましたか? library IDLのセクション?に記載されているタイプのみ library セクションはTLBに入ります。

library MyLib {
    // ...
    enum BAR;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top