我做了一個非常簡單的DLL是這樣的:使C++ DLL的C#
extern "C"
{
__declspec(dllexport) int Try(int v)
{
return 10 + v;
}
}
然後我想用它在我的C#應用程序:
class Program
{
[DllImport("TestLib.dll")]
public static extern int Try(int v);
static void Main(string[] args)
{
Console.WriteLine("Wynik: " + Try(20));
Console.ReadLine();
}
}
這是工作,直到我曾嘗試傳遞參數。現在,我已經在運行時出現以下錯誤:「!ConsoleApplication2 ConsoleApplication1.Program ::試試」
到的PInvoke函數 調用具有不平衡 堆棧。這很可能是因爲託管的PInvoke簽名 與非託管目標籤名不匹配。檢查呼叫 約定和PInvoke簽名的參數是否與目標 非託管簽名相匹配。
我不知道問題出在哪裏。
讓它'INT __stdcall嘗試(int v)按'在你的C++代碼。 –