Почему нет пространства имен Microsoft.Win64? - PullRequest
6 голосов
/ 11 июня 2009

У нас есть пространство имен Microsoft.Win32, но гарантированно ли оно работает в 64-битных средах Windows? Есть ли необходимость в таких определениях для 64-битной ситуации?

Ответы [ 3 ]

13 голосов
/ 11 июня 2009

.NET-приложения по умолчанию выполняются в среде, ориентированной на архитектуру ОС. Итак, если вы работаете с 32-битной Windows, .NET Framework, установленный на компьютере, будет 32-битной. Все приложения .NET, работающие на этой платформе, будут работать в «32-битном».

Если вы используете 64-битную Windows, значит, вы используете 64-битную платформу, но IL, работающий поверх платформы, по умолчанию не отличается от 32-битной IL.

Короче говоря: не имеет значения, используете ли вы 32-битную или 64-битную Windows, так как .NET Framework абстрагирует это от кода C # / VB.

Каркас Microsoft.Win32 относится к собственным API-интерфейсам внутри Windows. Если не считать действительно дурного имени, которое дала Microsoft, оно не имеет ничего общего с 32-битной и 64-битной Windows.

Кстати, есть некоторые вещи, которые вы не можете сделать с 64-битной версией фреймворка: например, в 64-битной фреймворке нет драйвера базы данных JET.

1 голос
/ 11 июня 2009

«Win32» - это имя платформы (т.е. базовый набор API), независимо от фактической разрядности ОС. Другими словами, не беспокойтесь об этом:)

0 голосов
/ 11 июня 2009

По той же причине у нас есть 64-битные двоичные файлы, хранящиеся в папке system32 в 64-битной Windows.

По сути, это потому, что вещи в Microsoft.Win32 не относятся к 32-битной Windows. Почему они должны вредить переносимости без каких-либо преимуществ?

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