Здравствуйте, rean, Вы писали:
R>Я пытался сделать самодельную легкую прослойку для Win32 и для мака, но увяз в деталях и недокументированных особенностях,
R>какие не найти в интернете. Все было путем проб и ошибок. Мог показывать окна, меню, простейшие контролы.
R>Расчет был на легковесность прослойки, чтобы по-максимуму использовать особенности систем. Но пришлось бросить этот проект
R>из-за трудоемкости и начавшихся проблем с падением доходов от шаревары на винде. А так бы, уже давно все закончил и имел портабельные
R>программы.
Хочу поделиться нашим опытом в разработке кроссплатформенных приложений: в свое время писали продукты на Delphi, от которого стало дурно пахнуть, и решили переписали свой
флагманский продукт на C++, причем изначально в архитектуру были заложена кроссплатформенная архитектура:
1. Для ядра используется только стандартный STL.
2. Для хранения строк используется обычный std::string в кодировке UTF8
3. Разработан небольшой набор собственных API, которые общаются с операционкой (все строковые параметры и результаты функций тоже UTF8). Например для Windows внутри API идет конвертация в wstring и обратно.
4. Для GUI выбрали QT, с которым пришлось немного пот...ся при разработке стилей под разные операционки (подогнать отступы в виджетах и т.п.), но это разовый гемор.
В результате имеем один набор исходников под Windows/OSX/Linux с минимальными усилиями по добавлению новых API в кроссплатформенный слой.