我在 Mac OS X 和 Linux 上开发富客户端软件。我希望将应用程序移植到 Windows 而不是 Microsoft 产品的用户,我一般对 Windows 不是很熟悉。
我所熟悉的:
在 Mac OS X 上,我可以选择 Cocoa 和 Objective C 或 Carbon 和 C/C++。在 Linux 上,我可以选择 GTK+ 和 C/C++ 或 Qt 和 C++。我更喜欢 Mac OS X 上的 Cocoa 和 Linux 上的 GTK+。Cocoa 的 Interface Builder 和 GTK+ 的 Glade 让我的生活变得轻松。在这些操作系统中创建富客户端很有趣。
我的核心类,或 MVC 中的“模型”,是用跨平台 C++ 编写的。用户界面类,或 MVC 中的“视图和控制器”,是用每个平台的“首选”语言和 GUI API 编写的。
C++ 是我最熟悉的语言。我广泛使用 Boost 库。尤其是智能指针、线程和 asio 网络库。对于 Unicode、本地化等,我使用 Unicode 国际组件 (ICU)。
问题 1:与我的跨平台模型类兼容的 Windows 平台的“首选”语言和 GUI API 是什么?
问题 2:如何访问我的跨平台模型类?
例如,在 Mac OS X 上,我通过控制器类访问我的模型类。控制器类在 Objective-C++ 中实现。Objective-C++ 是 C++ 和 Objective-C 的混合体。在 Objective-C 中查看对象与控制器对象“对话”,而在 C++ 中控制器对象与模型对象“对话”。
在 Linux 上,所有类都是用 C++ 实现的。