Я строю DLL, которая будет использоваться C++ с использованием COM.
Пожалуйста, дайте мне знать, что будет С# эквивалентом C++ 64-битного unsigned long long.
Это будет тип ulong в С#?
Пожалуйста, подтвердите.
Для всего, что выходит за рамки ulong, вы также можете использовать структуру С# BigInteger.
Ответ 3
В C++ каждый целочисленный тип удваивает свой размер при работе на 64-разрядной машине, а не на 32-разрядной.
Следовательно, указание того, что С# int или long может быть эквивалентно C++ int или long, неверно.
Скорее, в С# есть тип с именем IntPtr, который был создан исключительно для P/Invoke. Действительно, этот размер изменяет свой размер с 4 байтов на 32-битной машине до 8 байтов на 64-битной машине, и поэтому это правильный эквивалент C++ unsigned long или Windows ULONG.
Ответ 4
Начиная с С++ 11, вы можете использовать их:
int8_t
int16_t
int32_t
int64_t
uint8_t
uint16_t
uint32_t
uint64_t
Их размер гарантированно останется неизменным независимо от всего.