.NET 相当于 size_t

标签 .net 64-bit pinvoke

我有一段 .NET 代码,我想将其移植到 64 位。这些代码基本上是一组对其他 C dll 的 P/Invoke 调用。 C dll 中的函数之一具有参数“size_t”。我应该在我的 P/Invoke 签名中使用什么数据类型,以便编码工作正常。我正在考虑使用 IntPtr 或 UIntPtr 但有人说它们是 .NET 中的指针等效的东西,不应该使用它。有谁知道正确的类型是什么?

最佳答案

UIntPtr 会起作用(IntPtr 也可能起作用,但 size_t 是无符号的,所以 UIntPtr 更合适)

JaredPar 在他的 blog 上写了一些东西(和 follow-up )关于这个。

关于.NET 相当于 size_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/772531/

相关文章:

visual-studio-2008 - 检索 COM 类工厂失败。错误 : 80040154

linux - 如何强制linux在高(64位)地址空间中分配内存

c# - P/从 wlanapi.dll 调用 WlanHostedNetworkQueryStatus

c# - 扩展另一个应用程序的标题栏

c# - 64 位 VB.NET 分配 > 2GB 的 RAM(.NET 错误?)

c# - DllImport 是如何工作的?

c# - 性能测试的精确时间测量

c# - DLL 包含在 exe.file 中?

c# - CS0102 类型 'A' 已包含 'set_color' 的定义

c#:如何以编程方式突出显示/删除 datagridview 中的行