dev C++ で DLL を作成しました。DLL の名前は「DllMain.dll」で、2 つの関数が含まれています:HelloWorld
とShowMe
. ヘッダー ファイルは次のようになります。
DLLIMPORT void HelloWorld();
DLLIMPORT void ShowMe();
ソースファイルは次のようになります。
DLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi",MB_ICONINFORMATION);
}
DLLIMPORT void ShowMe()
{
MessageBox (0, "How are u?", "Hi", MB_ICONINFORMATION);
}
コードを DLL にコンパイルし、C# から 2 つの関数を呼び出します。C# コードは次のようになります。
[DllImport("DllMain.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void HelloWorld();
[DllImport("DllMain.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void ShowMe();
関数「HelloWorld」を呼び出すと、正常に実行され、メッセージ ボックスがポップアップ表示されますが、関数を呼び出すとエラーが発生ShowMe
しEntryPointNotFoundException
ます。この例外を回避するにはどうすればよいですか? extern "C"
ヘッダファイルに追加する必要がありますか?