C # аналоговый тип для ssize_t - PullRequest
2 голосов
/ 08 марта 2012

Я ищу интегральный тип данных C #, который может хранить 32-битные значения со знаком на 32-битных компьютерах и 64-битные значения со знаком на 64-битных компьютерах.
Причиной этого является вызов P / Invokeк функции C, которая получает параметр ssize_t * 1003. *-битные машины и long для 64-битных), но это потребует от меня сборки и доставки для различных целей, что очень нежелательно.

Любые другие решения этой проблемы, конечно, приветствуются: D

Ответы [ 2 ]

5 голосов
/ 08 марта 2012

Вы можете использовать тип IntPtr :

Тип IntPtr разработан как целое число, размер которого зависит от платформы. То есть ожидается, что экземпляр этого типа будет 32-разрядным в 32-разрядных аппаратных и операционных системах и 64-разрядным в 64-разрядных аппаратных и операционных системах.

1 голос
/ 08 марта 2012

Я ищу интегральный тип данных C #, который может содержать 32-битную подпись значения на 32-разрядных компьютерах и 64-разрядные значения со знаком на 64-разрядных компьютерах.

Вы ищете IntPtr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...