在C#里面不清楚你的int里面做过什么操作,如果new过什么东西出现指针而没有返回的话,会造成内存泄露问题,C#里面需要主动销毁由非托管代码新建的内存,比如操作Unmanaged GDI的时候,需要你主动Release Handle。CallingConvention是指示跨平台调用方法时候所做的处理的,但是我平时应用中使用Std都没什么问题,具体的你可能需要查看相关文档看看.net是如何处理调用非托管代码的。