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 ベースの宣言を構築する方法を示す例については、「プラットフォーム呼び出しによるデータのマーシャリング」を参照してください。
参照
概念
アンマネージ DLL 関数の処理
エントリ ポイントの指定
DLL 関数を保持するクラスの作成
マネージ コードでのプロトタイプの作成