Как создать проект C ++, отличный от MFC, со статической привязкой к библиотекам времени выполнения VC?

Я знаю, что для проекта MFC, созданного с помощью Visual Studio, можно перейти к свойствам проекта, а затем Configuration Properties -> General -> use of MFC и изменить его на Use MFC in a static library:

введите описание изображения здесь

Это работает, если полученная сборка должна запускаться в более ранних версиях Windows без необходимости установки DLL времени выполнения MFC или VC. Полученная сборка будет использовать библиотеки DLL, которые уже присутствуют в каждой установке Windows, начиная с Windows 7 и выше. (Возможно, даже до Windows XP.)

Теперь, если я создаю проект без MFC, скажем, тестовое консольное приложение C ++, параметр для использования MFC настроен как «Использовать стандартные библиотеки Windows»:

введите описание изображения здесь

Но если я запустил полученный двоичный файл, скажем, при новой установке Windows 7, я получаю такую ​​ошибку:

введите описание изображения здесь

Итак, покопавшись в настройках, я не смог найти способ скомпилировать его со статической привязкой ко всем этим новым версиям библиотек VC RT. Он есть, а я его просто не вижу?

PS. Покопавшись дальше, я обнаружил, что могу изменить "Platform Toolset" на Visual Studio 2017 - Windows XP (v141_xp), предполагая, что это сделает его обратно совместимым с Windows XP и выше:

введите описание изображения здесь

Но затем, если я его скомпилирую, я получаю следующие ошибки:

1>c:\program files (x86)\microsoft sdks\windows\v7.1a\include\objbase.h(239): error C2760: syntax error: unexpected token 'identifier', expected 'type specifier'
1>c:\program files (x86)\microsoft sdks\windows\v7.1a\include\dbghelp.h(1540): warning C4091: 'typedef ': ignored on left of '' when no variable is declared
1>c:\program files (x86)\microsoft sdks\windows\v7.1a\include\dbghelp.h(3056): warning C4091: 'typedef ': ignored on left of '' when no variable is declared

В этой части ObjBase.h файла, которая не имеет ничего общего с моим тестовым консольным проектом C ++, который я только что создал из шаблона Visual Studio:

введите описание изображения здесь

Итак, у меня вопрос: могу ли я создать проект C ++, не относящийся к MFC, который может работать в более старых версиях Windows без необходимости установки VC Runtime или каких-либо других дополнительных библиотек?


person c00000fd    schedule 06.07.2018    source источник


Ответы (1)


Перейдите в C / C ++ -> Генерация кода. Установите Runtime library на Multi-threaded /MT вместо Multi-threaded Dll /MD

person user7860670    schedule 06.07.2018
comment
Неа. Это не помогло. - person c00000fd; 07.07.2018