c# - 在.Net 4 : PInvokeStackImbalance Exception

标签 c# .net .net-4.0 msvcrt

我在 .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/

相关文章:

c# - 在新的 .net 3.5 应用程序中集成 Linq-to-Sql 或 Entity Framework ?

c# - 如何通过 UnhandledException 卸载 AppDomain

c# - 使用 mkbundle 从 C# 源代码创建 Linux 可执行文件时出现问题

c# - 为什么 C# 不允许 const 和 static 在同一行?

c# - .NETCF 允许输入签名的组件

c# - Datagridview 和选项卡控件问题

C#:代码契约与普通参数验证

c# - 如何将项目添加到 List<T> 的开头?

c# - Navigation Back & MVVM - 如何刷新 WP8 页面数据绑定(bind)

.net - nuget包管理器不同步