Видимо, важно использовать Int32 вместо int, когда возиться с DLLImport? - PullRequest
2 голосов
/ 18 мая 2010

В C #, когда возиться с этим системным DLLImport / (неуправляемым?) Кодом, я где-то читал, что важно использовать точный тип Int32 вместо int. Это правда? И кто-то может объяснить, почему это важно сделать?

Ответы [ 2 ]

6 голосов
/ 18 мая 2010

Я думаю, что вы, скорее всего, читали об использовании IntPtr вместо int. Как уже говорили другие, int и Int32 эквивалентны.

На самом деле не проблема поменять int и IntPtr в 32-битной системе, поскольку они имеют одинаковый размер (4 байта). Проблема возникает, когда в 64-битной системе - если вы используете int вместо IntPtr, теперь он имеет неправильный размер (4 байта вместо 8 байтов) и может вызвать ошибки.

1 голос
/ 18 мая 2010

Я не верю, что это правда. int является псевдонимом для Int32. Они означают одно и то же и будут скомпилированы в один и тот же IL.

Список псевдонимов можно найти здесь .

...