c++ - What Windows API do I choose for a rich client application? -
i develop rich client software on mac os x , linux. wish port application windows , not being user of microsoft products, i'm not familiar windows in general.
what i'm familiar with:
on mac os x, have option of cocoa , objective c or carbon , c/c++. on linux, have option of gtk+ , c/c++ or qt , c++. prefer cocoa on mac os x , gtk+ on linux. interface builder cocoa , glade gtk+ make life easy. it's fun create rich clients in these operating systems.
my core classes, or "model" in mvc, written in cross-platform c++. user interface classes, or "view , controller" in mvc, written in "preferred" language , gui api each respective platform.
c++ language i'm familiar with. use boost libraries extensively. smart pointers, threads, , asio networking libraries. unicode, localization, etc., use international components unicode (icu).
question 1: "preferred" language , gui api windows platform that's compatible cross-platform model classes?
question 2: how access cross-platform model classes?
for example, on mac os x, access model classes through controller classes. controller classes implemented in objective-c++. objective-c++ mix of c++ , objective-c. view objects "talk to" controller objects in objective-c while controller objects "talk to" model objects in c++.
on linux, classes implemented in c++.
there isn't "preferred" language , api on windows, more lots of choices. obvious ones raw win32 calls direct operating system (so c calls), or thin abstraction on top of (e.g. wtl, windows template library, c++), or thicker abstraction (e.g. mfc, c++).
microsoft these days pushing pretty hard wpf, that's part of managed .net world. can write c++ in that, might able port application, expect significant effort.
given you're using gtk+ or qt on linux, obvious thing using both of on windows, both exist - way keep linux , windows versions identical. they're not natual choices windows-only application, they're not windows world, given background make lots of sense. might need put time tweaking them windows application , feel right, should more compensated lack of need write whole new presentation layer.
Comments
Post a Comment