小编use*_*098的帖子

如何在C#中调用C++ DLL

我在开发C++中编写了一个DLL.DLL的名称是"DllMain.dll",它包含两个函数:HelloWorldShowMe.头文件如下所示:

DLLIMPORT  void HelloWorld();
DLLIMPORT void ShowMe();
Run Code Online (Sandbox Code Playgroud)

源文件如下所示:

DLLIMPORT void HelloWorld ()
{
  MessageBox (0, "Hello World from DLL!\n", "Hi",MB_ICONINFORMATION);
}

DLLIMPORT void ShowMe()
{
 MessageBox (0, "How are u?", "Hi", MB_ICONINFORMATION);
}
Run Code Online (Sandbox Code Playgroud)

我将代码编译成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();
Run Code Online (Sandbox Code Playgroud)

当我打电话功能的"HelloWorld",它运行良好,弹出一个消息框,但是当我调用该函数ShowMeEntryPointNotFoundException发生.我该如何避免这种异常?我是否需要添加extern "C"头文件?

c# dll

14
推荐指数
2
解决办法
7万
查看次数

标签 统计

c# ×1

dll ×1