我已经写在开发的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"
头文件?