ssize_t的C#模拟类型

本文关键字:模拟 模拟类 类型 ssize | 更新日期: 2023-09-27 18:27:19

我正在寻找一种C#积分数据类型,它可以在32位机器上保存32位有符号值,在64位机器上可以保存64位有符号的值
原因是对C函数的P/Invoke调用接收到ssize_t参数
我知道我可以用预处理器指令为不同的机器以不同的方式"DllImport"这个函数(32位机器使用ints,64位机器使用longs

当然,这个问题的任何其他解决方案都是非常受欢迎的:D

ssize_t的C#模拟类型

您可以使用IntPtr类型:

IntPtr类型被设计为一个整数,其大小是特定于平台的。也就是说,这种类型的实例在32位硬件和操作系统上预期为32位,在64位硬件和作业系统上预期是64位。

我正在寻找一种可以容纳32位签名的C#积分数据类型32位机器上的值和64位机器上有符号的64位值。

您正在查找IntPtr