| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Как сделать консольн кроссплатформенную программу? |
| Автор: 1IMMORTAL 20.1.2010, 12:58 |
Всем доброго времени суток! Здравствуйте! Подскажите пожалуйста, как сделать, чтобы моя консольная программа была кроссплатформенной? Чтобы небыло необходимости пересобирать проект при изменении системной локали и/или кодировки? На данный момент использую Code::Blocks 8.02 под Windows. Предполагается перенос программы на linux. За ранее благодарю за помощь! |
| Автор: chaos 20.1.2010, 13:10 |
Java? Собирать под каждую платформу в любом случае придется Добавлено через 5 минут а вообще по подробнее надо: есть GUI или нет, работа с сетью, бд, и тд и тп |
| Автор: 1IMMORTAL 20.1.2010, 13:15 |
| Понятно, что под каждую платформу собирать надо. Просто с кодировками кое-чего не пойму. Возможно ли сделать, чтобы например в Linux'е при смене системной кодировки (например с однобайтовой на многобайтную) не нужно было править исходники и вообще программу пересобирать. И при переносе с винды на Linux не нужно было менять кодировку строк. В Java не нравится необходимость устанавливать JVM на комп, где будет работать прога. Неужели это единственный выход? |
| Автор: chaos 20.1.2010, 13:58 |
qt тоже надо ставить. по теме не могу точно сказать, тк никогда не задумывался. направление дальнейших действий std::wstring QString(QTextCodec::setCodecFor....) |
| Автор: 1IMMORTAL 20.1.2010, 20:36 | ||
Всю жизнь мечтал работать исключительно с юникодом QT не хочу ибо не хочу платить в случае продажи моей проги. Надеюсь использовать только STL. Как заставить этот чёртов MinGW, вместе с его STL, работать с юникодом? А можно и статически прилинковать. Но не нужно |
| Автор: maxxant 20.1.2010, 22:32 | ||
с марта 2009 года, начиная с версии 4.5, Qt имеет LGPL лицензию, что означает возможность бесплатно использовать неизменённые динамически слинкованные библиотеки Qt в коммерческом закрытом продукте. |
| Автор: 1IMMORTAL 20.1.2010, 22:59 | ||||
А с помощью QT можно делать консольные юникодные проги? |
| Автор: maxxant 20.1.2010, 23:03 | ||||
Ну и кстати, да в догонку ) В Qt есть все средства для локализации (пусть не идеальные), строки помеченные через макрос tr() выносяться спец тулзой в отдельный файл, который потом переводиться в Qt Linguist отдельным человеком (не обязательно программистом). При запуске приложения проверяется локаль и кодировка системы (автоматически), нужные скомпиленные файлы перевода подхватываются и всё просто работает. Для этого есть там кодеки для работы с текстом. Либо использовать спец библиотеки, поскольку учесть море языков и кодировок, и их перевод между кодировками туда сюда - жуть, что даст юникод если у кого-то КОИ-8? конвертить?. Например в линуксе обычно используется UTF-8 (и в консоли и в гуи), но иногда КОИ-8. В freeBSD пока только КОИ-8 (для россии). Надо сказать сам консольные с переводами не далал (english only), но с гуёвыми проблем не было. Добавлено через 6 минут и 20 секунд http://qt.nokia.com/doc/4.6/internationalization.html можно бегло пробежаться, чтобы понять некую суть кроссплатформенной локализации и возможности Qt. То есть, если только для винды делать, то и заморачиваться особо не приходиться. |
| Автор: 1IMMORTAL 20.1.2010, 23:29 |
| Благодарю за помощь! Нужно будет подробней ознакомиться с QT. |
| Автор: chaos 21.1.2010, 09:28 |
так же не забудь обратить внимfние на STLPort |