ssize_t的C#模拟类型

Mar*_*ani 2 c c# pinvoke 32bit-64bit

我正在寻找一种C#积分数据类型,它可以在32位机器上保存32位有符号值,在64位机器上保存64位有符号值.
原因是对接收ssize_t参数的C函数的P/Invoke调用.
我知道我可以使用预处理器指令以不同的方式为不同的机器"使用DllImport"这个函数(对于32位机器的int和64位的long),但这需要我为不同的目标构建和运送,非常不受欢迎.

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

dtb*_*dtb 5

您可以使用IntPtr类型:

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