ssize_t的C#模拟类型

时间:2012-03-08 14:45:51

标签: c# c pinvoke 32bit-64bit

我正在寻找一种C#整数数据类型,它可以在32位计算机上保存32位有符号值,在64位计算机上保存64位有符号值。 原因是对C函数的P / Invoke调用接收 ssize_t 参数。
我知道我可以使用预处理器指令以不同的方式为不同的机器“DllImport”使用此功能(32位机器的 int 和64位的 longs ),但这需要我为不同的目标建造和运输,这是非常不受欢迎的。

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

2 个答案:

答案 0 :(得分:5)

您可以使用IntPtr type

  

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

答案 1 :(得分:1)

  

我正在寻找可以保持32位签名的C#整数数据类型   32位计算机上的值和64位计算机上的64位有符号值。

您正在寻找IntPtr