Congradulations :-}

Boaz Harrosh boaz at hishome.net
Mon Dec 29 00:36:02 CST 2003


    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





More information about the wine-devel mailing list