PInvoke在 2.0 3.0的时候正常 升级到4.0后出错。

PInvoke在 2.0 3.0的时候正常 升级到4.0后出错。

方法1:

设置 CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl,但是我设置了也是出错。换一个convention没出错。但是调用不正常。

方法2:

大概意思是P/Invoke StackImblance这个异常,本身来说可以忽略掉。

在.net 2的项目环境下,默认是关掉这个异常检查的。在.net 4下面,默认是开启这个检查的。

要解决这个问题,可以在ctrl+alt+e的处理异常类型类型设定里,managed debug assistants里把pinvoke statckeimblance的复选框去掉就可以了。

测试了有效果。