簡體   English   中英

在dll中導出並從C#加載的C ++函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM