我在 .Net 3.5 项目中使用 msvcrt.dll
中的 strlen
函数。更具体地说:
private unsafe static extern int strlen( byte *pByte );
迁移到 .NET 4.0 后,如果我使用此函数,它会抛出 PInvokeStackImbalance
异常。
如何导入 .NET 3.5 msvcrt.dll
或修复此异常?
最佳答案
我怀疑问题出在调用约定上,您应该使用 Cdecl。
[DllImport("msvcrt.dll", CallingConvention=CallingConvention.Cdecl)]
private unsafe static extern int strlen(byte* pByte);
关于c# - 在.Net 4 : PInvokeStackImbalance Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723021/