По большей части ... но имейте в виду следующее:
Если вы хотите программировать без .NET Framework, выберите любой из проектов "Visual C ++" при создании нового проекта - но нене используйте ни один из проектов CLR.
Собственные приложения C ++ (консольные или оконные) будут работать в старых операционных системах Windows, если вы не будете ссылаться на вызовы функций или API, которые доступны только в новых операционных системах.системы.Например, не вызывайте StgMakeUniqueName и ожидайте, что ваше приложение будет работать в Windows XP.Но довольно просто получить консольное приложение C / C ++, скомпилированное на последней версии Visual C ++, работающее на Win7, для создания EXE-файлов, работающих на XP.
Я считаю, что вы можете предотвратить случайное использование новых API с помощьюиспользование определения _WINNT_WIN32.
Другое соображение, связанное с нативными приложениями C ++ в Windows, заключается в том, что по умолчанию Visual C ++ выбирает динамическое связывание для включения C-RunTime (например, msvcrt100.dll).Эти библиотеки DLL не всегда доступны на компьютерах, на которые вы копируете свой EXE.Когда вы запускаете свой EXE на другом компьютере, вы можете получить сообщение об ошибке приложения о невозможности найти MSVCRT * .dll.Если это произойдет, вы можете либо перейти к статическому связыванию в настройках проекта (а затем просто скопировать EXE непосредственно на другие машины), либо предварительно установить соответствующий MSVCRT на другие компьютеры, на которых вы хотите запустить свой EXE.Visual Studio предварительно устанавливает MSVCRT как часть собственной настройки.Visual Studio поставляется с файлами MSI для установки MSVCRT, которые можно распространять.Отладочные сборки вашего EXE-файла могут потребовать ручного копирования отладочной сборки MSVCRT DLL на целевые машины.Выберите статическое связывание для отладочных сборок или просто отладочные сборки вашего приложения с розничной MSVCRT.
То же самое относится и к MFC и связанным с ним DLL, если вы решите использовать эту платформу для разработки пользовательского интерфейса.(Но вы сказали, что консольные приложения, так что вам не нужно об этом беспокоиться).
Ваш EXE не будет работать в Linux без некоторого взлома.(Перекомпилировать проще).Но если вы запрограммируете консольное приложение на .NET, то у EXE высока вероятность запуска в Linux с Mono.