インポート時のライブラリの変換

タイプ ライブラリを変換するとき、インポート プロセスは、ライブラリ内に定義されている型をタイプ ライブラリと同じ名前の名前空間に自動的に配置します。たとえば、次のタイプ ライブラリに対して Tlbimp.exe を実行すると、TLbimp.exe ユーティリティは、AcmeLib タイプ ライブラリに定義されているすべての型を AcmeLib 名前空間にインポートします。

タイプ ライブラリ表現

library AcmeLib {
    interface Widget {};
    coclass Slingshot {};
};

変換後に、AcmeLib.Slingshot を使用して、マネージ アプリケーションから Slingshot クラスを呼び出すことができます。

Namespace AcmeLib
    Interface Widget
    End Interface
   
    Class Slingshot
    End Class
End Namespace
namespace AcmeLib {
    interface Widget {};
    class Slingshot {};
};

タイプ ライブラリ属性を使用することにより、タイプ ライブラリ インポート プロセスで使用される名前空間を明示的に制御できます。タイプ ライブラリ名にはピリオド (.) を含めることはできないので、ピリオドで区切られた名前空間に型をインポートするには、タイプ ライブラリ属性を使用する以外に方法はありません。この属性の ID は、0F21F359-AB84-41e8-9A78-36D110E6D2F9 です。ユーザー定義の属性が追加されたタイプ ライブラリ表現を次に示します。

タイプ ライブラリ表現

[
    uuid(…),
    version(1.0),
    custom(0F21F359-AB84-41e8-9A78-36D110E6D2F9, "Acme.WidgetLib")
]
library AcmeLib {
    interface Widget {};
    coclass Slingshot {};
};

ユーザー定義の属性を使用すると、Tlbimp.exe に対して、強制的に AcmeLib タイプ ライブラリを Acme.WidgetLib 名前空間にインポートさせることができます。Slingshot クラスは、マネージ コードでは Acme.WidgetLib.Slingshot になります。

参照

概念

インポート時のモジュールの変換
インポート時の型の変換
インポート メンバの変換
インポート パラメータの変換

その他の技術情報

タイプ ライブラリからアセンブリへの変換の要約