C プラグマ 新しいページはコチラ
提供: yonewiki
(→#pragma comment(linker, [” ”])) |
(→#pragma comment(linker, [” ”])) |
||
138行: | 138行: | ||
*<nowiki>#</nowiki>pragma comment(linker, ”/INCLUDE:[]”) | *<nowiki>#</nowiki>pragma comment(linker, ”/INCLUDE:[]”) | ||
:シンボル参照の強制と同じ動作で、シンボル(関数名)を記述するとシンボルテーブルに追加されます。これはプログラム中で使われないような関数をリンカが無視するのを防いで、実行可能ファイルからとりこむような処理です。 | :シンボル参照の強制と同じ動作で、シンボル(関数名)を記述するとシンボルテーブルに追加されます。これはプログラム中で使われないような関数をリンカが無視するのを防いで、実行可能ファイルからとりこむような処理です。 | ||
+ | |||
+ | |||
*<nowiki>#</nowiki>pragma comment(linker, ”/DEFAULTLIB:[]”) | *<nowiki>#</nowiki>pragma comment(linker, ”/DEFAULTLIB:[]”) | ||
:リンク処理時のライブラリの参照を指定します。優先度はコマンドライン→/DEFAULTLIB→実行可能ファイル(.obj)内に記述されたライブラリ参照の順で参照され、/NODEFAULTLIBによるライブラリ参照の無視に関する指示が優先されます。/NODEFAULTLIB関連の指示が優先されることから、これらのライブラリ参照の指示によらず、外部に依存していないリンク処理になっていることを確実にすることができます。 | :リンク処理時のライブラリの参照を指定します。優先度はコマンドライン→/DEFAULTLIB→実行可能ファイル(.obj)内に記述されたライブラリ参照の順で参照され、/NODEFAULTLIBによるライブラリ参照の無視に関する指示が優先されます。/NODEFAULTLIB関連の指示が優先されることから、これらのライブラリ参照の指示によらず、外部に依存していないリンク処理になっていることを確実にすることができます。 | ||
+ | |||
+ | |||
*<nowiki>#</nowiki>pragma comment(linker, ”/EXPORT:[]”) | *<nowiki>#</nowiki>pragma comment(linker, ”/EXPORT:[]”) | ||
+ | :プログラムから関数を出力して、他のファイルから関数を利用できるようにするものです。 | ||
+ | :実際には | ||
+ | :<nowiki>#</nowiki>pragma comment(linker, ”/EXPORT:関数名(@1~65536の値(省略可),NONAME(省略可),DATA(省略可))”) | ||
+ | :という具合に利用します。1~65536の値は関数に割り振られる番号で省略すると、リンク処理時に自動で割り付けられます。NONAMEと指定すると関数名を省略した1~65535の番号によって呼び出す関数となります。DATAを使うとデータとして取り扱われます。 | ||
+ | :関数の出力はプログラムソースに__declspec(dllexport)キーワードを付けて出力する方法や.defファイルにEXPORT命令を使う方法もあります。 | ||
+ | |||
+ | |||
*<nowiki>#</nowiki>pragma comment(linker, ”/MANIFESTDEPENDENCY:[]”) | *<nowiki>#</nowiki>pragma comment(linker, ”/MANIFESTDEPENDENCY:[]”) | ||
*<nowiki>#</nowiki>pragma comment(linker, ”/MERGE:[]”) | *<nowiki>#</nowiki>pragma comment(linker, ”/MERGE:[]”) |