Я разрабатываю многофункциональное клиентское программное обеспечение для Mac OS X и Linux. Я хочу портировать приложение на Windows и, не будучи пользователем продуктов Microsoft, я не очень знаком с Windows в целом.
С чем я знаком:
В Mac OS X у меня есть опция Какао и Objective C или Carbon и C / C ++. В Linux у меня есть опция GTK + и C / C ++ или Qt и C ++. Я предпочитаю Какао на Mac OS X и GTK + на Linux. Конструктор интерфейсов для Cocoa и Glade для GTK + облегчит мою жизнь. интересно создавать в этих операционных системах богатых клиентов.
Мои базовые классы, или «модель» в MVC, написаны на кроссплатформенном C ++. Классы пользовательского интерфейса, или «представление и контроллер» в MVC, написаны на «предпочтительном» языке и GUI API для каждой соответствующей платформы.
C ++ - язык, с которым я наиболее знаком. Я широко использую библиотеки Boost. Особенно умные указатели, потоки и сетевые библиотеки asio. Для Unicode, локализации и т. Д. Я использую международные компоненты для Unicode (ICU).
Вопрос 1. Какой «предпочтительный» язык и графический интерфейс API для платформы Windows совместим с моими классами межплатформенных моделей?
Вопрос 2. Как получить доступ к моим кроссплатформенным модельным классам?
Например, в Mac OS X я получаю доступ к своим модельным классам через классы контроллера. Классы контроллера реализованы в Objective-C ++. Objective-C ++ представляет собой смесь C ++ и Objective-C. Просмотр объектов «общаются» с объектами контроллера в Objective-C, в то время как объекты контроллера «общаются» с объектами модели в C ++.
В Linux все классы реализованы на C ++.