From wolfgang%wmsickte.escape.de%oker.escape.de@dbstu1.rz.tu-bs.de Sun Aug 20 19:28:44 1995 Received: from festival.ed.ac.uk by aiai.ed.ac.uk; Sun, 20 Aug 95 19:28:39 BST Received: from dbstu1.rz.tu-bs.de by festival.ed.ac.uk id aa14619; 20 Aug 95 19:29 BST Received: from oker.escape.de by DBSTU1.RZ.TU-BS.DE (IBM VM SMTP V2R2) with TCP; Sun, 20 Aug 95 20:28:49 MEZ Received: by oker.escape.de (Smail3.1.29.0) from wmsickte.escape.de with uucp id ; Sun, 20 Aug 95 20:22 MET DST Received: by wmsickte.escape.de (CrossPoint v3.02); 20 Aug 1995 20:27:48 +0200 Date: 20 Aug 1995 20:26:00 +0200 From: Wolfgang Muees To: J.Smart@ed.ac.uk Message-Id: <5sCUax7DpZB@wmsickte.escape.de> Subject: wxWindows, once more X-Mailer: XP v3.02 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Status: REO Julian, thank you very much for reacting on my suggestions... :-) I find it very exiting that there are other people living on this planet who are also interested in making portable GUIs... While you work ( :-) ), I decided to make myself more familiar with wxWindows. I simply take my wxWindows 1.62 and disabled the precompiled headers of BC++... so I can continue. By the way: before I know something about wxWindows, I have done a research for myself: If you have different classes for each platform, how must the structure of the GUI be? ZINC AF (which I know) does platform switching via #defines and #ifdefs. Very bad. I found that having base classes for each class and concrete classes in different directories be the best way... So you can imagine that wxWindows (which does it exactly how I though) expresses me. (Using the "factory" design pattern is not applicable for wxWin because the user is required to subclass the wxWin classes.) Here is a list of topics I find out while making wxWindows libraries and samples: 1) some DOS versions accept only ONE parameter after "erase". So in the makefiles, I have to expand "erase p1 p2 p3...." into multiple lines. 2) in src\makefile.bcc, "erase wxwin.cfg" is missing for "clean": 3) in src\msw\makefile.bcc, I removed a space... there is a line defining the compiler option for compile a source file. It looks like: -c {.....} I removed the space after the "-c". So the DOS command line does not exceed 128 chars, which will break MAKE. 4) in wx_setup.h, I set USE_ODBC=0. (You know it) 5) for BC++ Version 4 and later, you need to include an additional library for EACH example. It is named "NOEHWL" (16 bit windows) and has to be linked in prior to all other libraries. I inserted noehwl into the line defining the libs. The purpose of NOEHWL is to remove unnesseccary exception handling code inside the borland standard libraries. (And NEW does return NULL instead of throwing an exception). 6) I suggest that you support a link options file (much like WXWIN.CFG for the compiler). So you can reference this file from each sample, and maintaining the samples and additional exes would be much easier. 7) I changed some compiler options: option meaning -k- do not generate a stack frame (smaller and faster code) -N- remove stack check -po use fastthis calling convention (16bit windows) ( "this" is given to the method via register) -RT- disable runtime type information (!!!) -vi do inline optimisations -x- disable exceptions (!!!) -xc compatible exceptions on (!!!) if you specify "-x-" and "-xc", the compiler completely stops emitting exception information. I have NOT verified that these options are valid for BC++ versions prior 4.5. (Support for out-of-date compiler versions seems not reasonable to me). 8) I changed some linker options: option meaning /Oc do chained fixups /Oi optimize iterated data /P compress code segments NOTE: the linker of BC++ Version 4.5 is enhanced to do better optimisations (if you request them....) 9) in src\makefile.bcc, I defined FINAL=1 (near the line DEBUG=0). What I get: - library gets maked - samples compiled (there are still some warnings. I saw that you turned some warnings off. Not good...) Some words about program length: My first "HELLO.EXE" was more than 1200 KB. My last "HELLO.EXE" is about 577 KB. I don't thing that wxWindows has a "large exe" problem. Only a "not the right compiler options" problem....(Setting options if difficult in BC++ because there are too much of them). Regards Wolfgang ## CrossPoint v3.02 ##