32-битный VC ++ распространяется на 64-битной ОС? - PullRequest
4 голосов
/ 27 сентября 2010

Используя Visual Studio, я создал приложение на C ++, работающее в 32-битном режиме. Он будет развернут как на 32-битных, так и на 64-битных серверах Windows. Он не будет работать в 64-битном режиме (а скорее в WoW).

Стоит ли включать 32-разрядный и 64-разрядный распространяемый Visual C ++ и устанавливать 32-разрядный в 32-разрядной Windows и 64-разрядный в 64-разрядной Windows, или достаточно просто установить 32-разрядный распространяемый?

Ответы [ 5 ]

4 голосов
/ 27 сентября 2010

Достаточно установить 32-битный распространяемый.

3 голосов
/ 21 апреля 2015

РЕДАКТИРОВАТЬ: Я прокомментировал вводящий в заблуждение ответ ниже, но ответ вам нужны только 32-разрядные распространяемые, как Карел Петранек ответил первый.

Это не ответ.Это должен быть только комментарий, но поскольку у меня нет необходимой репутации для этого ...:

Я просто хотел предупредить людей против предоставленной Руэлом информации.Нет, распространяемые 64-битные пакеты Visual C ++ также не включают в себя 32-битные DLL.

Я даже проверил эту (его) теорию.Я попытался запустить приложение, которое требует 32-разрядных распространяемых файлов Visual C ++ 2010, и оно подсказало мне, что это нужно.Затем я установил 64-разрядную версию, и она все еще подсказывала, что ей нужна 32-разрядная версия Visual C ++ 2010. После установки 32-разрядной версии все заработало.

Почему люди придумывают теории и предоставляют их какответы бьют меня.Или, возможно, система репутации также «поощряла» его предоставлять не только лишнюю, но и ложную информацию.Или, может быть, он просто перепутал C ++ с распространяемыми DirectX 9 (которые устанавливают как 32-битные, так и 64-битные DLL).

1 голос
/ 19 февраля 2011

Скомпилируйте его, используя параметр / MT, и библиотека времени выполнения VC ++ будет скомпилирована в ваш исполняемый файл, поэтому вам не нужно беспокоиться о ее распространении.

Проект> Свойства> Свойства конфигурации> C / C ++> Генерация кода> Библиотека времени выполнения> Многопоточный (/MT).

1 голос
/ 27 сентября 2010

Оба являются продуктами Microsoft, но не позволяйте этому обмануть вас.

Ваше приложение C ++ создает 32-битный EXE-файл, связывающийся с 32-битными DLL.Как это бывает, одна или две из этих DLL-библиотек Microsoft CRT, но ОС по-прежнему использует те же правила.Поэтому вам не нужны 64-битные DLL.

0 голосов
/ 27 сентября 2010

64-разрядный распространяемый пакет Visual C ++ включает как распространяемый 32-разрядный Visual C ++, так и распространяемый 64-разрядный Visual C ++.

...