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

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

2 ответа

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

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

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

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

Другие вопросы по тегам