C++函数导出在DLL和从C#

问题描述:

我在C++加载:C++函数导出在DLL和从C#

空隙__declspec(dllexport)的FOO(HWND WND)

而在C#

[DllImport("MyDll.dll", CharSet = CharSet.Ansi)] 
public static extern void foo(IntPtr wnd); 

当我试图调用它时我有这个错误 - 附加信息:无法找到名为' foo'在DLL中。我试图检查的dll和我有休耕定义功能:

未修饰C++函数: 无效CDECL富(结构HWND *)

我搜索了几个论坛,并似乎这是正确的方法做到这一点...你知道我为什么有这个运行时错误吗?

+0

看看我的问题,也许帮忙! http://stackoverflow.com/q/4108181/375958 – Jalal 2011-01-27 22:40:03

您需要禁用C++名称修改。声明您的本地函数是这样的:

extern "C" __declspec(dllexport) void foo(HWND wnd) 

您也可以使用dumpbin.exe实用程序来查看DLL导出。

+0

它的工作原理,谢谢!我将在11分钟内接受答案:P – Felics 2011-01-27 22:25:42