Hi -
No easy answer to this question - "It depends".
I'd suggest there are (at least) three different levels you need to look at:
Code:
+------------------+
| C++ syntax | <= POTENTIALLY STRAIGHTFORWARD
+------------------+
| OS/library APIs| <= POTENTALLY STRAIGHTFORWARD
+------------------+
| User interface | <= POTENTIALLY VERY, VERY DIFFICULT
+------------------+
I'd suggest the following:
1. Baseline the code you need to port:
a) Count the #/modules and the #/lines of code in your Windows app
2. GCC/MS C++ syntax:
a) Do a test compile of a few representative modules
b) Count the #/compile errors; count #/compile warnings
<= THIS MIGHT GIVE YOU A "BALLPARK" FOR HOW PORTABLY
THE CODE IS WRITTEN
c) Extrapolate the effort
3. User interface:
a) Do a Google search for different Open Source UIs.
It runs the gamut from Qt (roughly analogous to MFC) through Tcl/Tk
(roughly analogous to VB) through Java/Swing (which would have
the added benefit of continuing to run on Windows after you port it).
Don't forget to consider making the user interface a web interface
(potentially the easiest, most robust solution of all).
b) Make a rough prototype in one or more of your "candidate UIs".
c) Extrapolate the porting effort
<= THE EFFORT WILL BE IN DIRECT PROPORTION TO HOW
WELL DESIGNED THE APP IS: TO WHAT EXTENT IT SEPARATES
UI FROM FUNCTIONALITY ... AND TO WHAT EXTENT IT JUMBLES
THE TWO TOGETHER...
Good luck .. PSM