DLL 内の関数の識別
DLL 関数の識別子は、次の要素から構成されています。
関数の名前または序数
実装が含まれている DLL ファイルの名前
たとえば、User32.dll の MessageBox 関数を指定する場合は、関数 (MessageBox) とその関数の所在 (User32.dll、User32、または user32) を識別します。 Microsoft Windows アプリケーション プログラミング インターフェイス (Win32 API) は、関数ごとに、1 バイト文字 ANSI バージョンと、2 バイト文字 Unicode バージョンという、処理する文字や文字列が異なる 2 種類のバージョンを格納できます。 バージョンを指定しない場合、CharSet フィールドで表される文字セットは、既定で ANSI に設定されます。 3 種類以上のバージョンを持つことができる関数もあります。
MessageBoxA は、MessageBox 関数の ANSI バージョンのエントリ ポイントです。MessageBoxW は、Unicode バージョンです。 さまざまなコマンド ライン ツールを使用して、user32.dll などの特定の DLL の関数名を一覧表示できます。 たとえば、dumpbin /exports user32.dll や link /dump /exports user32.dll を使用して、関数名を取得できます。
アンマネージ関数の名前は、作成するコード内では任意の名前に変更できます。ただし、その場合には、新しい名前を DLL 内の元のエントリ ポイントに割り当てる必要があります。 マネージ ソース コードでアンマネージ DLL 関数の名前を変更する方法については、「エントリ ポイントの指定」を参照してください。
プラットフォーム呼び出しを使うと、Win32 API やその他の DLL の関数を呼び出すことで、オペレーティング システムの重要な部分を制御できます。 Win32 API のほかにも、数多くの API や DLL がプラットフォーム呼び出しによって利用できます。
Win32 API で一般的に使用される DLL の説明を次の表に示します。
DLL |
内容の説明 |
---|---|
GDI32.dll |
描画用関数やフォント管理用関数など、デバイス出力用のグラフィックス デバイス インターフェイス (GDI: Graphics Device Interface) 関数。 |
Kernel32.dll |
メモリ管理やリソース処理のための、低水準のオペレーティング システム関数。 |
User32.dll |
メッセージ処理、タイマー、メニュー、および通信のための Windows 管理関数。 |
Win32 API の完全なドキュメントについては、『Platform SDK』を参照してください。 プラットフォーム呼び出しと共に使用する .NET ベースの宣言を構築する方法を示す例については、「プラットフォーム呼び出しによるデータのマーシャリング」を参照してください。