.NET相当于size_t

Nir*_*n U 11 .net 64-bit pinvoke

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

Pat*_*ald 18

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

JaredPar在他的博客上写了一些内容(以及后续内容).