分兩種情況: 靜態(tài)調(diào)用時(shí),需要在函數(shù)聲明語(yǔ)句中加入CallingConvention = CallingConvention.Cdecl 如下所示: [DllImport("TestDLL.dll", EntryPoint = "Add", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)] 動(dòng)態(tài)調(diào)用DLL時(shí),需要修改生成DLL的源碼。 在函數(shù)前面加上 __stdcall。 如下所示: int _stdcall Add(int a,int b) 這樣就解決了PinvokeStackImbalance問(wèn)題 |
|