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 *)
我搜索了几个论坛,并似乎这是正确的方法做到这一点...你知道我为什么有这个运行时错误吗?
答
您需要禁用C++名称修改。声明您的本地函数是这样的:
extern "C" __declspec(dllexport) void foo(HWND wnd)
您也可以使用dumpbin.exe实用程序来查看DLL导出。
+0
它的工作原理,谢谢!我将在11分钟内接受答案:P – Felics 2011-01-27 22:25:42
看看我的问题,也许帮忙! http://stackoverflow.com/q/4108181/375958 – Jalal 2011-01-27 22:40:03