Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 131

Кроссплатформенность хотя бы в пределах Windows

08.01.2018, 07:40. Показов 1041. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот, разбираюсь с С++, и задался вопросом, как скомпилировать программу так, чтобы работало на любой версии винды, начиная, хотя бы с Win XP.

Сразу скажу, что работаю в Visual Studio 2015. Со стандартными настройками приложение компилируется и все ОК, и у меня на компьютере работает. Но вот если я его закидываю на разные виртуальные машины, то вот там уже начинаются проблемы. Где-то не запускается, где-то вылетает ошибка совместимости, где-то ругается на х64 версию сборки. Попробовал настроить проект под WinXP вот так:




Но где-то приложение после этого не открывается вообще, а где-то я получаю ошибку совместимости msvc библиотеки. Эту проблему я прогуглил, и выяснил, что случается такое потому, что VS связывает мой проект с новой версией msvc, которой нету на старых операционках по дефолту, и ее нужно устанавливать. Еще немного погуглив, я нашел 2 варианта решения этой проблемы: во-первых компилировать код черз MinGV, а во-вторых связать проект со старой версией msvc. И вот тут уже я столкнулся с проблемой:

Код через g++ не компилируется, ругается на строчку
C++
1
#include <vss.h>
Есть несколько предположений, почему так, но высказывать мне их даже стыдно, если честно. Опыта в С/С++ у меня совсем нету, язык я не знаю, и особенностей его тоже. Поэтому уповаю на помощь гуру.

Ну да черт с ним, с MinGV, это даже банально неудобно - писать в VS, а потом компилировать через консоль g++. Мы все таки в 2к18 живем. Решит ли эту задачу(работа приложения на (условно) всех версиях винды) привязка к старой msvc? Не выйдет ли такого, что будет работать на ХР, 7-ке, а у меня на 8.1 не запустится? Если это решит проблему, как это сделать? Я столкнулся с такой проблемой работая на С++, что все пишут абсолютно любые гайды и солюшены так, будто все их читатели - это программисты на С++ с опытом в 10 лет и не меньше. Порог вхождения новичка очень высокий.

Короче, буду рад любой помощи, желательно такой, чтобы было понятно новичку с опытом в других языках.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2018, 07:40
Ответы с готовыми решениями:

Кроссплатформенность Windows Phone
Всем доброго времени суток, меня интересует вопрос кроссплатформенности ОС WP. Вот есть версии ОС - 7.5, 7.8, 8. Вот если к примеру я...

Кроссплатформенность (с Linux на Windows)
Здравствуйте. Есть программа написанная на C в Linux и работающая в Linux. В программе используются такие функции как open, write, close,...

При запуске ПК нет выбора операционной системы, хотя установлены Windows XP и Windows 8
ж. диск 2 терра разделен на 4части,до сих пор стояла винда 8.1,установил хр на другую часть диска,при запуске не выходит выбор между...

5
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.01.2018, 14:45
Тебе в любом случае придётся распространять Visual C++ Redistributable для соответствующей версии VC. У кого-то может быть не установлено.
Для XP, надо выбирать Platform toolset соответствующий в свойствах проекта. А чтобы он был древнее, надо и саму VS брать древнюю - не старше 2010, наверное.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
08.01.2018, 15:04
Цитата Сообщение от nmcf Посмотреть сообщение
в любом случае придётся распространять Visual C++ Redistributable
А если собрать статически?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.01.2018, 15:43
Цитата Сообщение от TRam_ Посмотреть сообщение
А если собрать статически?
Ну пусть попробует.
0
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 131
08.01.2018, 20:51  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Ну пусть попробует.
А можно ссылочку на гайд? В гугле по запросу "Собрать проект статически в Visual Studio" выдает инфу только о том, как собрать статическую библиотеку, либо о том, как зашить подключаемые библиотеки в exe с помощью ILMerge
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.01.2018, 21:13
Свойствах проекта изучи как следует. Там есть C++/Code Generation/Runtime Library. /MT для статической сборки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2018, 21:13
Помогаю со студенческими работами здесь

Проект не открывается на windows xp хотя на windows 7 работает
Сделал программу, на windows 7 у всех работает , а на windows xp нет . Пишу на Delphi XE2 . Программа запускается , но вот эта часть не...

Как сохранить значение в пределах Windows session?
Вот такая потребность: пользователь запускает некий скрипт, ps или даже .bat и в процессе выполнения вводит некий пароль. Выполнив...

В поисках ппк: планшет на windows, в пределах 20к, с упором на рисование.
Сразу прошу прощения, если я таки не правильно выбрал раздел. Цель - планшет на windows, в пределах 20к, с упором на рисование. Я...

Кроссплатформенность...
Привет всем! Необходимо написать некое графическое приложение, при этом оно должно быть кроссплатформенными и API-независимым. Как я...

Кроссплатформенность
Здрасть всем. Есть вопрос, как сделать сайт кроссплатформенным? Данный код нормально работает только в хроме, в остальных браузерах, нет ни...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru