Just wanted to let people know. And share this happy moment with my
fellow workman
I have successfully Beta released a WinLib port of a, 1 million
lines of code, windows program. QA will Install a first Linux Machine
and will start to bang on it tomorrow. (Well more like an advanced Alfa
I guess)
Technologies successfully compiled and running in the Project:
- Windows GUI & API (wrapped in an Old C++ lib, ZAFF).
- ODBC under CRecordSet from MFC - I use the MSSQL drivers, SQLing data
from a neighboring WinXP-SQL Server. I used an mdac.exe installation
application from Microsoft. With ODBC32 native DLL.
- General MFC contains, Strings, OleDispatch OleVariant OleBSTR... and
even some GUI. - Actually to manage that I had an MSVC++ wizard
generated MFC MDI Application with ODBC access and forms. Which helped
me debug the MFC library. So MFC is pretty much covered.
- ATL/WTL OCX hosting and General ATL use for anything COM. - Here too a
WTL app-wizard generated MDI application with IE and other OCXes on
Forms help me verify the ATL subsystem. Including support for "uuidof",
"#pragma property" and more. Hosting and Events work fine.
( actually ActiveX controls compile too, but TLB problem must be resolved.)
- A solution for Linking with C++ shared libraries that in-turn also use
windows API.
(I call them C++ fake DLLs.)
- C++ STL from STLPort ported to Wine to compile using msvcrt (and MFC)
And more stuff I cannot remember now.
By far the biggest problem was the msvcrt vs STL. and other native C++.
This caused a big Linking problem where STL would bypass msvcrt but
other application code would not. This proved to be fatal. From circular
linking to allocators not matching to Libraries not able to load. Since
MFC and ATL would not even think to compile with out msvcrt Headers and
lib the issue had to be resolved. The only way I managed to solve it all
is by directly linking msvcrt GCC style into STLPort and into every
module there of. Now that would make some conflicts with OCX's like IE6
that can only run with native msvcrt.dll, so I also had to change it's name.
One of the thing I would like to eventually do is Make a static
msvcrt library using same source code but having different make files to
be used in such situations where it has to be directly linked.
Tomorrow I will start synchronization with wine current tree. Once I
have it synced (2 days max). I will need someone to help me and guide me
on how to send it all in. Dimi, will that be you?
So I guess the scores are:
Wine vs Windows 1:1
World vs Microsoft 3:10 (we are making progress, wait for the last round)
Boaz vs GCC 7:4
Good vs Evil (I better not say)
Happy new Year to all
Free Life
Boaz