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