我正在寻找一种C#整数数据类型,它可以在32位计算机上保存32位有符号值,在64位计算机上保存64位有符号值。
原因是对C函数的P / Invoke调用接收 ssize_t 参数。
我知道我可以使用预处理器指令以不同的方式为不同的机器“DllImport”使用此功能(32位机器的 int 和64位的 longs ),但这需要我为不同的目标建造和运输,这是非常不受欢迎的。
当然,非常欢迎任何其他解决这个问题的方法:D
答案 0 :(得分:5)
您可以使用IntPtr type:
IntPtr类型设计为整数,其大小是特定于平台的。也就是说,这种类型的实例预计在32位硬件和操作系统上为32位,在64位硬件和操作系统上为64位。
答案 1 :(得分:1)
我正在寻找可以保持32位签名的C#整数数据类型 32位计算机上的值和64位计算机上的64位有符号值。
您正在寻找IntPtr
。