<li><a href="#dll">Can you compile wxWindows 2 as a DLL?</a></li>
<li><a href="#exesize">How can I reduce executable size?</a></li>
<li><a href="#mfc">Is wxWindows compatible with MFC?</a></li>
+<li><a href="#asuffix">Why do I get errors about FooBarA when I only use FooBar in my program?</a></li>
<li><a href="#newerrors">Why my code fails to compile with strange errors about new operator?</a></li>
<li><a href="#mfcport">How do I port MFC applications to wxWindows?</a></li>
<li><a href="#crash">Why do I sometimes get bizarre crash problems using VC++ 5/6?</a></li>
wxWindows 2 has been designed to reduce dependencies between classes, and other
techniques. The linker will not include code from the library that is not (directly or
indirectly) referenced
-by your application. So for example, the 'minimal' sample is less than 300KB using VC++ 6.<P>
+by your application. So for example, the 'minimal' sample is less than 500KB using VC++ 6
+(note that this figure may be greater for the latest version of wxWindows).<P>
If you want to distribute really small executables, you can
use <a href="http://www.un4seen.com/petite/" target=_top>Petite</a>
use DLLs. Another good compression tool is <a href="http://upx.sourceforge.net/" target=_top>UPX</a>.
<P>
+Please do not be surprised if MinGW produces a statically-linked minimal executable of 1 MB. Firstly, gcc
+produces larger executables than some compilers. Secondly, this figure will
+include most of the overhead of wxWindows, so as your application becomes more
+complex, the overhead becomes proportionaly less significant. And thirdly, trading executable compactness
+for the enormous increase in productivity you get with wxWindows is almost always well worth it.
+
<H3><a name="mfc">Is wxWindows compatible with MFC?</a></H3>
There is a sample which demonstrates MFC and wxWindows code co-existing in the same
application. However, don't expect to be able to enable wxWindows windows with OLE-2
functionality using MFC.<P>
+<H3><a name="asuffix">Why do I get errors about FooBarA when I only use FooBar in my program?</H3>
+
+If you get errors like
+<p>
+<center>
+<tt>no matching function for call to 'wxDC::DrawTextA(const char[5], int,
+int)'</tt>
+</center>
+<p>
+or similar ones for the other functions, i.e. the compiler error messages
+mention the function with the <tt>'A'</tt> suffix while you didn't
+use it in your code, the explanation is that you had included
+<tt><windows.h></tt> header which redefines many symbols to have such
+suffix (or <tt>'W'</tt> in the Unicode builds).
+
+<p>
+The fix is to either not include <tt><windows.h></tt> at all or include
+<tt>"wx/msw/winundef.h"</tt> immediately after it.
+
<H3><a name="newerrors">Why my code fails to compile with strange errors about new operator?</a></H3>
The most common cause of this problem is the memory debugging settings in
This can happen if you have a child window intercepting EVT_CHAR events and swallowing
all keyboard input. You should ensure that event.Skip() is called for all input that
-isn'used by the event handler.
+isn'used by the event handler.<P>
+
+It can also happen if you append the submenu to the parent
+menu {\it before} you have added your menu items. Do the append {\it after} adding
+your items, or accelerators may not be registered properly.<P>
<H3><a name="#regconfig">Why can I not write to the HKLM part of the registry with wxRegConfig?</a></H3>