C ディレクティブ 新しいページはコチラ
提供: yonewiki
(→#import) |
(→#import) |
||
76行: | 76行: | ||
=='''<nowiki>#</nowiki>import'''== | =='''<nowiki>#</nowiki>import'''== | ||
− | タイプライブラリ(.olb/.tlb/.dll/.ocx/.exe…) | + | タイプライブラリ(.olb/.tlb/.dll/.ocx/.exe…)の読み込みを指示するディレクティブです。C++では、読み込んだタイプライブラリはC++のクラスとして展開されます。 |
87行: | 87行: | ||
− | のように指定します。タイプライブラリ名を指定した後ろに空白を設けて(属性)とあるように、さまざまなオプションとなるような属性を指定することもできます。属性についてはWinアプリの[[分散オブジェクト技術 | 分散モジュール]]のようなタイプライブラリを使っている分にはマイクロソフト固有のものしか付与しないと思います。詳細はMSDNの https://msdn.microsoft.com/ja-jp/library/298h7faa.aspx を参照して下さい。ファイルの検索の優先度は以下のとおりです。#includeによく似ていますが違っている部分もあるので、勘違いしないようにしましょう。 | + | のように指定します。タイプライブラリ名を指定した後ろに空白を設けて(属性)とあるように、さまざまなオプションとなるような属性を指定することもできます。属性についてはWinアプリの[[分散オブジェクト技術|分散モジュール]]のようなタイプライブラリを使っている分にはマイクロソフト固有のものしか付与しないと思います。詳細はMSDNの https://msdn.microsoft.com/ja-jp/library/298h7faa.aspx を参照して下さい。ファイルの検索の優先度は以下のとおりです。#includeによく似ていますが違っている部分もあるので、勘違いしないようにしましょう。(パス\)タイプライブラリファイル名の代わりにprogid:サフィックスではじまるタイプライブラリのコントロールのprogidを記述する手法として、progid:ライブラリ名.クラス名のような形式やlibid:サフィックスではじまるタイプライブラリのライブラリIDを記述する手法として、libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52のような形式を使うことも出来ます。このようなタイプライブラリの使い方はマイクロソフトやその他企業が提供するものは巨大で複雑なものが多くここで簡単に説明できるような内容ではないためWinアプリの記事を書くときがあれば、記述しますが、ここではディレクティブの使い方だけを取り上げているため説明を省略します。 |
101行: | 101行: | ||
:#環境変数LIBで指定されたディレクトリ | :#環境変数LIBで指定されたディレクトリ | ||
:#/I コンパイルオプションで指定されているディレクトリ、指定の無い場合は他の#import **** no_registryの属性をもった形式によって読み込まれたタイプライブラリが参照するライブラリを検索。※no_registry属性はタイプライブラリのレジストリを検索しないことを宣言する属性。 | :#/I コンパイルオプションで指定されているディレクトリ、指定の無い場合は他の#import **** no_registryの属性をもった形式によって読み込まれたタイプライブラリが参照するライブラリを検索。※no_registry属性はタイプライブラリのレジストリを検索しないことを宣言する属性。 | ||
+ | |||
+ | |||
+ | 使用例 記述例ですので、以下のディレクティブが実際に使えるかどうかは保証しません。 | ||
+ | <syntaxhighlight lang="text"> | ||
+ | // XML | ||
+ | #import "msxml6.dll" named_guids raw_interfaces_only | ||
+ | |||
+ | // Office | ||
+ | #import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52" version("2.4") lcid("0") raw_interfaces_only auto_rename | ||
+ | |||
+ | // Word | ||
+ | #import "libid:00020813-0000-0000-C000-000000000046" version("1.6") lcid("0") raw_interfaces_only auto_rename | ||
+ | </syntaxhighlight> | ||
=='''<nowiki>#</nowiki>line'''== | =='''<nowiki>#</nowiki>line'''== |