メインメニューを開く

差分

DLL

1,081 バイト追加, 2014年2月27日 (木) 02:38
'''DLL'''とは、(読み:でぃーえるえる、語源:Dynamic Link Library)とは、[[Windows]]においてよく使う機能を[[ライブラリ]]にし、一個のファイルにしたものである。にし、一個の[[ファイル]]にしたものである。 == 概要 ==かつて[[コンピューター]]の[[リソース]]が乏しかった時代、複数の[[プログラム]]でひとつの[[ライブラリ]]を共有しようという夢のような概念が生まれた。誰もが絶賛した。 だが、その先にあったのは[[DLL地獄]]であった。 人々は奪い合い、殺し合い、混沌だけが残った。
==DLLの使い方==
test.dllのint test(int a)という関数を利用することを考える。
静的リンクの利点はプログラムが簡単になることだが、欠点はDLLがないと起動できなくなることなので、[[静的リンク]]の利点は[[プログラム]]が簡単になることだが、欠点はDLLがないと起動できなくなることなので、
拡張機能を提供するには向かない。
逆に、動的リンクの利点はDLLがなくてもプログラム内でエラー処理をすればいいことだが、逆に、[[動的リンク]]の利点はDLLがなくてもプログラム内で[[エラー処理]]をすればいいことだが、
プログラムが若干複雑になるという欠点がある。
===[[C言語]]===
====静的リンク====
1.インポートライブラリを作成する[[インポートライブラリ]]を作成する
<pre>&gt;pexports test.dll > test.def
&gt;dlltool --dllname test.dll --input-def test.def --output-lib libtest.a</pre>
result=test(a)
Print result</pre>
 
===[[なでしこ]]===
<pre>●test(a)=DLL("test.dll","int test(int a)")
「aを入力してください。」で数値入力。
引数はそれを整数変換。
test(引数)をいう。</pre>
==DLLの作り方==
=== .NET Framework ====[[Visual Studio|Visual C#]]を使用しても拡張子がを使用しても[[拡張子]]が.dllの[[ファイル]]は作れるようだが、ここで扱うDLLとは別物である。 [[.NET Framework]]における.dllファイルは[[エントリポイント]]を持たない[[共通中間言語]]の[[バイナリ]]表現であり、従来のDLLとはまったくの別物である。紛らわしいことに[[拡張子]]が一緒だがまったくの別物である。 ここだけの話、.NET Frameworkの.exeファイルは.dllのファイルは作れるようだが、ここで扱うDLLとは別物のようである。dllファイルのように扱える。 
===C言語===
<source lang="c">