]> git.saurik.com Git - wxWidgets.git/blame - docs/html/faqmsw.htm
added wxSetInstance()
[wxWidgets.git] / docs / html / faqmsw.htm
CommitLineData
ce3ed50d
JS
1<HTML>
2
3<HEAD>
4<TITLE>wxWindows 2 for Windows FAQ</TITLE>
5</HEAD>
6
7<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
8
9<font face="Arial, Lucida Sans, Helvetica">
10
11<table width=100% border=4 cellpadding=5 cellspacing=0>
12<tr>
13<td bgcolor="#660000">
14<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
15wxWindows 2 for Windows FAQ
16</font>
17</td>
18</tr>
19</table>
20
21<P>
22
23See also <a href="faq.htm">top-level FAQ page</a>.
24<hr>
25
b953bdc2 26<h3>Which Windows platforms are supported?</h3>
ce3ed50d 27
b953bdc2
JS
28wxWindows can be used to develop and deliver applications on Windows 3.1, Win32s,
29Windows 95, Windows 98, and Windows NT. A Windows CE version is being looked into (see below).<P>
30
31wxWindows 2 is designed to make use of WIN32 features and controls. However, unlike Microsoft,
32we have not forgotten users of 16-bit Windows. Most features
ce3ed50d 33work under Windows 3.1, including wxTreeCtrl and wxListCtrl using the generic implementation.
b953bdc2 34However, don't expect very Windows-specific classes to work, such as wxTaskBarIcon. The wxRegConfig
ce3ed50d
JS
35class doesn't work either because the Windows 3.1 registry is very simplistic. Check out the 16-bit
36makefiles to see what other files have been left out.
37<P>
3816-bit compilation is supported under Visual C++ 1.5, and Borland BC++ 4 to 5.
39<P>
40
b953bdc2
JS
41wxWindows 2 for Windows will also compile on Unix with gcc using TWIN32 from <a href="http://www.willows.com" target=_top>Willows</a>,
42although TWIN32 is still in a preliminary state. The resulting executables are
43Unix binaries that work with the TWIN32 Windows API emulator.<P>
44
45You can also compile wxWindows 2 for Windows on Unix with Cygwin or Mingw32, resulting
46in executables that will run on Windows. So in theory you could write your applications
47using wxGTK or wxMotif, then check/debug your wxWindows for Windows
48programs with TWIN32, and finally produce an ix86 Windows executable using Cygwin/Mingw32,
49without ever needing a copy of Microsoft Windows. See the Technical Note on the Web site detailing cross-compilation.<P>
50
51<h3>What about Windows CE?</h3>
52
53This is under consideration, though we need to get wxWindows Unicode-aware first.
54There are other interesting issues, such as how to combine the menubar and toolbar APIs
55as Windows CE requires. But there's no doubt that it will be possible, albeit
56by mostly cutting down wxWindows 2 API functionality, and adding a few classes here
57and there. Since wxWindows for 2 produces small binaries (less than 300K for
58the statically-linked 'minimal' sample), shoehorning wxWindows 2 into a Windows CE device's limited
59storage should not be a problem.<P>
60
ce3ed50d
JS
61<h3>What compilers are supported?</h3>
62
63Please see the wxWindows 2 for Windows install.txt file for up-to-date information, but
64currently the following are known to work:<P>
65
66<ul>
67<li>Visual C++ 1.5, 4.0, 5.0, 6.0
68<li>Borland C++ 4.5, 5.0
69<li>Borland C++Builder 1.0, 3.0
70<li>Watcom C++ 10.6 (WIN32)
71<li>Cygwin b20
72<li>Mingw32
73<li>MetroWerks CodeWarrior 4
74</ul>
75<P>
76
77There is a linking problem with Symantec C++ which I hope someone can help solve.
78<P>
79
80<h3>Which is the best compiler to use with wxWindows 2?</h3>
81
82It's partly a matter of taste, but I (JACS) prefer Visual C++ since the debugger is very
83good, it's very stable, the documentation is extensive, and it generates small executables.
84Since project files are plain text, it's easy for me to generate appropriate project files
85for wxWindows samples.<P>
86
87Borland C++ is fine - and very fast - but it's hard (impossible?) to use the debugger without using project files, and
88the debugger is nowhere near up to VC++'s quality. The IDE isn't great.<P>
89
90C++Builder's power isn't really used with wxWindows since it needs integration with its
91own class library (VCL). For wxWindows, I've only used it with makefiles, in which case
92it's almost identical to BC++ 5.0 (the same makefiles can be used).<P>
93
94You can't beat Cygwin's price (free), and you can debug adequately using gdb. However, it's
95quite slow to compile since it does not use precompiled headers.<P>
96
97CodeWarrior is cross-platform - you can debug and generate Windows executables from a Mac, but not
98the other way around I think - but the IDE is, to my mind, a bit primitive.<P>
99
100Watcom C++ is a little slow and the debugger is not really up to today's standards.<P>
101
102<h3>Is Unicode supported?</h3>
103
104No, although there are other internationalisation features.<P>
105
106However, the issues surrounding Unicode support have been looked into so we know
107what we need to do, and have some header files ready to use containing appropriate
108type definitions. Just about every file in wxWindows will need changes, due to the
109pervasive nature of characters and character arrays. Unicode support is needed
b953bdc2 110for the port to Windows CE (see above).<P>
ce3ed50d 111
b953bdc2 112<h3>Can you compile wxWindows 2 as a DLL?</h3>
ce3ed50d 113
9838df2c 114Yes (using the Visual C++ or Borland C++ makefile), but be aware that distributing DLLs is a thorny issue
b953bdc2
JS
115and you may be better off compiling statically-linked applications, unless you're
116delivering a suite of separate programs, or you're compiling a lot of wxWindows applications
117and have limited hard disk space.<P>
118
119With a DLL approach, and with different versions and configurations of wxWindows
120needing to be catered for, the end user may end up with a host of large DLLs in his or her Windows system directory,
121negating the point of using DLLs. Of course, this is not a problem just associated with
122wxWindows!
123<P>
124
9838df2c
JS
125<H3>How can I reduce executable size?</H3>
126
127You can compile wxWindows as a DLL (see above, VC++/BC++ only at present). You should also
128compile your programs for release using non-debugging and space-optimisation options.<P>
129
130Statically-linked wxWindows 2 programs are smaller than wxWindows 1.xx programs, because of the way
131wxWindows 2 has been designed to reduce dependencies between classes, and other
132techniques. The linker will not include code from the library that is not (directly or
133indirectly) referenced
134by your application. So for example, the 'minimal' sample is less than 300KB using VC++ 6.<P>
135
136If you want to distribute really small executables, you can
137use <a href="http://www.icl.ndirect.co.uk/petite/" target=_top>Petite</a>
138by Ian Luck. This nifty utility compresses Windows executables by around 50%, so your 500KB executable
139will shrink to a mere 250KB. With this sort of size, there is reduced incentive to
140use DLLs.<P>
141
b953bdc2
JS
142
143<H3>Will wxWindows be compatible with MFC?</H3>
144
145There is a sample which demonstrates MFC and wxWindows code co-existing in the same
146application. However, don't expect to be able to enable wxWindows windows with OLE-2
147functionality using MFC.<P>
ce3ed50d
JS
148
149
150</font>
151
152</BODY>
153
154</HTML>