电竞比分网-中国电竞赛事及体育赛事平台

分享

C#調(diào)用DLL錯(cuò)誤:PInvokeStackImbalance。

 小斑書閣 2020-03-11

分兩種情況:

靜態(tài)調(diào)用時(shí),需要在函數(shù)聲明語(yǔ)句中加入CallingConvention = CallingConvention.Cdecl

如下所示:

[DllImport("TestDLL.dll", EntryPoint = "Add", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int Add(int a, int b); 


動(dòng)態(tài)調(diào)用DLL時(shí),需要修改生成DLL的源碼。 在函數(shù)前面加上 __stdcall。

如下所示:

int _stdcall Add(int a,int b)
{
 cout << "TestDll"<<endl;
 return a + b;
}

這樣就解決了PinvokeStackImbalance問(wèn)題

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多