別の関数名でWindows API をインポートする (DLLで定義された関数名と異なる関数名でDLLからインポートする) - C#

Windows APIの関数名と別の関数名でWindows APIをインポートしたいことがあります。この記事では別名でDLLから関数をインポートする方法を紹介します。

方法

別名でDLLから関数をインポートするには DllImport に名前付き引数で"EntryPoint"を指定します。

コード例

通常のインポートの例

MessageBox Windows APIをインポートします。
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern MessageBoxResult MessageBox(
  IntPtr hWnd, String text, String caption, int options);

別の名前でインポートする場合の例

MessageBox Windows APIをWinAPI_MBという名前でインポートします。
[DllImport("user32.dll", CharSet = CharSet.Auto、EntryPoint="MessageBox")]
public static extern MessageBoxResult WinAPI_MB(
  IntPtr hWnd, String text, String caption, int options);
EntryPointにDLLで定義されている関数名を指定することで、別名でDLLの関数をインポートできます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2012-07-12
iPentec all rights reserverd.