Dot-Net

.NET 相當於 size_t

  • December 12, 2021

我有一段要移植到 64 位的 .NET 程式碼。這些程式碼基本上是一組對其他 C dll 的 P/Invoke 呼叫。C dll 中的函式之一有一個參數“size_t”。我應該在我的 P/Invoke 簽名中使用什麼數據類型,以便編組工作正常。我正在考慮使用 IntPtr 或 UIntPtr 但有人說它們是 .NET 中的指針等價物,不應該使用它。有誰知道這個的正確類型是什麼?

UIntPtr 會起作用(IntPtr 也可能會起作用,但 size_t 是無符號的,所以 UIntPtr 更合適)

JaredPar 在他的部落格(以及後續文章)上寫了一些關於此的內容。

如果 size_t 因平台而異,則必須使用 IntPtr。如果是固定大小的整數,請使用 int、uint 或 long(取決於原始聲明)。

引用自:https://stackoverflow.com/questions/772531