Что означает цель «Любой процессор» в Visual Studio?

Использование BufferedReader -

StringTokenizer st = new StringTokenizer(buf.readLine());

while(st.hasMoreTokens())
{
  arr[i++] = Integer.parseInt(st.nextToken());
}
470
задан iliketocode 8 August 2016 в 22:11
поделиться

6 ответов

блок AnyCPU будет JIT к 64-битному коду при загрузке в 64-разрядный процесс и 32 бита при загрузке в 32-разрядный процесс.

Путем ограничения ЦП Вы сказали бы: существует то, чтобы это было используемым блоком (что-то, вероятно, неуправляемое), который требует 32 битов или 64 битов.

371
ответ дан Peter Mortensen 9 August 2016 в 08:11
поделиться

Вот быстрый обзор , который объясняет различные цели сборки.

На основе моего собственного опыта, если Вы надеетесь разрабатывать проект, который будет работать и на x86 и на x64 платформах, и у Вас нет определенной x64 оптимизации, я изменил бы сборку для специфического высказывания "x86".

причина этого иногда, можно получить некоторые DLLs, которые сталкиваются или некоторый код, который завершает отказывающий WOW в x64 среде. Путем специфического определения x86, x64 ОС будет рассматривать приложение как чистое x86 приложение и удостоверяться, что все работает гладко.

51
ответ дан M.Babcock 9 August 2016 в 08:11
поделиться

"Любой ЦП" означает, что, когда программа запущена, Платформа.NET выяснит, на основе разрядности ОС, запустить ли Вашу программу в 32 битах или 64 битах.

существует различие между x86 и Любой ЦП : в x64 системе Ваш исполняемый файл, скомпилированный для X86, будет работать как 32-разрядный исполняемый файл.

Насколько Ваши подозрения идут, просто перейдите к Visual  Studio  командная строка 2008 года и выполненный следующее.

dumpbin YourProgram.exe /headers

Это скажет Вам разрядность Вашей программы, плюс намного больше.

39
ответ дан Peter Mortensen 9 August 2016 в 08:11
поделиться

Любой ЦП означает, что будет работать над любой платформой. Это вызвано тем, что управляемый код подобен Java. Думайте о нем как скомпилированный в код байта, который интерпретируется Платформой.NET во времени выполнения.

C++ не имеет этой опции, потому что это компилируется в машинный код, который является конкретной платформой.

32
ответ дан Adam Tegen 9 August 2016 в 08:11
поделиться

Проверьте Цель Платформы Visual Studio.NET статьи , Объясненную .

настройка по умолчанию, "Любой ЦП", означает, что блок будет работать исходно на ЦП, на котором это в настоящее время работает. Значение, это будет работать как 64-разрядное на 64-разрядной машине и 32-разрядное на 32-разрядной машине. Если блок назовут из 64-разрядного приложения, то он будет работать как 64-разрядный блок и так далее.

вышеупомянутая связь, как сообщали, была разорвана, таким образом, вот другая статья с подобным объяснением: , Что AnyCPU Действительно Средства С.NET 4.5 и Visual Studio 11

46
ответ дан DCNYAM 9 August 2016 в 08:11
поделиться

Я думаю, что было сказано, что большинство важных вещей было сказано, но я просто подумал, что добавлю одно: если вы компилируете как любой CPU и запустить на платформе X64 , Тогда вы не сможете загрузить 32-разрядные файлы DLL, поскольку ваше приложение не было запущено в WOW64 , но эти файлы DLL должны работать там.

Если вы компилируете x86, то система X64 будет запускать ваше приложение в WOW64, и вы сможете загрузить 32-разрядные файлы DLL.

Так что я думаю, что вы должны выбрать «любой CPU», если ваши зависимости могут работать в любой среде, но выберите X86, если у вас есть 32-разрядные зависимости. Эта статья из Microsoft объясняет это немного:

/ CLRIMAGETYPE (Укажите тип изображения CLR)

Кстати, Эта другая документация Microsoft соглашается с тем, что X86 обычно является более портативный выбор:

x86, как правило, самая безопасная конфигурация для пакета приложения Так как он будет работать почти на каждом устройстве. На некоторых устройствах приложение Пакет с конфигурацией X86 не запустится, например, Xbox или некоторые IOT основные устройства. Однако для ПК пакет X86 является самым безопасным Выбор и имеет самый большой достижение для развертывания устройства. Существенный Часть устройства Windows 10 продолжают запускать версию X86 Окна.

313
ответ дан 22 November 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: