我用开发 C++ 编写了一个 DLL。DLL 的名称是“DllMain.dll”,它包含两个函数: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# 调用这两个函数。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"
在头文件中添加吗?