[英]C++ function exported in dll and loaded from C#
我有C ++:
void __declspec(dllexport)foo(HWND wnd)
並在C#
[DllImport("MyDll.dll", CharSet = CharSet.Ansi)] public static extern void foo(IntPtr wnd);
當我試圖調用它時,我有這個錯誤 - 附加信息:無法在DLL中找到名為'foo'的入口點。 我試圖檢查dll,我有以下定義的函數:
未修飾的C ++函數:void cdecl foo(struct HWND *)
我在幾個論壇上搜索過,似乎這是正確的方法...你知道為什么我有這個運行時錯誤嗎?
您需要禁用C ++名稱修改。 像這樣聲明你的原生函數:
extern "C" __declspec(dllexport) void foo(HWND wnd)
您也可以使用dumpbin.exe實用程序查看DLL導出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.