]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/html/faqmsw.htm
wxTextPos for all GetLastPosition with constants for special cases. Make it virtual...
[wxWidgets.git] / docs / html / faqmsw.htm
index aa0dcbe3cb1adbfd8a0798b12af6765eca544304..16174d43f083d45dea6620d09710f0fa3fb2ba4c 100644 (file)
@@ -45,7 +45,10 @@ See also <a href="faq.htm">top-level FAQ page</a>.
 <li><a href="#shortcutproblem">Why are menu hotkeys or shortcuts not working in my application?</a></li>
 <li><a href="#regconfig">Why can I not write to the HKLM part of the registry with wxRegConfig?</a></li>
 <li><a href="#access">Is MS Active Accessibility supported?</a></li>
-<li><a href="#dspfmt">Why does Visual C++ complain about corrupted project files{/a></li>
+<li><a href="#dspfmt">Why does Visual C++ complain about corrupted project files?</a></li>
+<li><a href="#crtmismatch">Visual C++ gives errors about multiply defined symbols, what can I do?</a></li>
+<li><a href="#directx">Why do I get compilation erros when using wxWidgets with DirectShow?</a></li>
+<li><a href="#handlewm">How do I handle Windows messages in my wxWidgets program?</a></li>
 </ul>
 <hr>
 
@@ -76,7 +79,7 @@ without ever needing a copy of Microsoft Windows. See the Technical Note on the
 
 <h3><a name="wince">What about Windows CE?</a></h3>
 
-This port is largely complete. For further information, see the <a href="http://www.wxwindows.org/embedded.htm#wxwince">wxEmbedded</a> page.<P>
+This port is largely complete. For further information, see the <a href="http://www.wxwidgets.org/embedded.htm#wxwince">wxEmbedded</a> page.<P>
 
 <h3><a name="winxp">What do I need to do for Windows XP?</a></h3>
 
@@ -224,7 +227,7 @@ you need to configure wxWidgets to compile without debugging information: see
 docs/msw/install.txt for details. You may find that using configure instead
 of makefile.g95 is easier, particularly since you can maintain debug and
 release versions of the library simultaneously, in different directories.
-Also, run 'strip' after linking to remove all traces of debug info.
+Also, run &#39;strip&#39; after linking to remove all traces of debug info.
 <P>
 
 <H3><a name="mfc">Is wxWidgets compatible with MFC?</a></H3>
@@ -244,7 +247,7 @@ lib/mswd<P>
 
 or if building the static Release library, lib/msw.<P>
 
-See also the <a href="http://wiki.wxwindows.org/wiki.pl?Table_Of_Contents">wxWiki Contents</a>
+See also the <a href="http://wiki.wxwidgets.org/wiki.pl?Table_Of_Contents">wxWiki Contents</a>
 for more information.<P>
 
 
@@ -320,6 +323,10 @@ Code&#39; (and no others). This will then work.<P>
 
 <H3><a name="makefiles">How are the wxWidgets makefiles edited under Windows?</a></H3>
 
+wxWidgets 2.5.x and above uses Bakefile to generate makefiles, which
+is described in technical note 16 under docs/tech in your distribution.
+For 2.4.x, the following explanation applies.<P>
+
 As of wxWidgets 2.1, there is a new system written by Vadim Zeitlin, that
 generates the makefiles from templates using tmake.<P>
 
@@ -491,13 +498,13 @@ bool myGlobalConfig::Write (const wxString& key, const wxString& value)
 
 <H3><a name="#access">Is MS Active Accessibility supported?</a></H3>
 
-This is being worked on. Please see <a href="http://www.wxwindows.org/access.htm">this page</a>
+This is being worked on. Please see <a href="http://www.wxwidgets.org/access.htm">this page</a>
 for the current status.
 
 <P>
 
 
-<h3><a name="#dspfmt">Why does Visual C++ complain about corrupted project files{/a></h3>
+<h3><a name="#dspfmt">Why does Visual C++ complain about corrupted project files?</a></h3>
 
 If you have downloaded the wxWidgets sources from the cvs using a Unix cvs
 client or downloaded a daily snapshot in <tt>.tar.gz</tt> format, it is likely
@@ -510,6 +517,58 @@ Of course, another possibility is to always use only the Windows cvs client
 and to avoid this problem completely.
 <p>
 
+<h3><a name="#crtmismatch">Visual C++ gives errors about multiply defined symbols, what can I do?</a></h3>
+
+If you get errors like this
+
+<pre>
+MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _xxxxxx already defined in LIBCD.lib(yyyyy.obj)
+</pre>
+
+when linking your project, this means that you used different versions of CRT
+(C Run-Time) library for wxWindows (or possibly another library) and the main
+project. Visual C++ provides static or dynamic and multithread safe or not
+versions of CRT for each of debug and release builds, for a total of 8
+libraries. You can choose among them by going to the "Code generation"
+page/subitem of the "C++" tab/item in the project proprieties dialog in VC6/7.
+<p>
+To avoid problems, you <strong>must</strong> use the same one for all
+components of your project. wxWindows uses multithread safe DLL version of the
+CRT which is a good choice but may be problematic when distributing your
+applications if you don&#39;t include the CRT DLL in your installation -- in this
+case you may decide to switch to using a static CRT version. If you build with
+<tt>wxUSE_THREADS == 0</tt> you may also use the non MT-safe version as it is
+slightly smaller and faster.
+<p>
+But the most important thing is to use the <strong>same</strong> CRT setting for
+all components of your project.
+
+<h3><a name="#directx">Why do I get compilation errors when using wxWidgets with DirectShow?</a></h3>
+
+If you get errors when including Microsoft DirectShow or DirectDraw headers,
+the following message from Peter Whaite could help:
+<blockquote><pre>
+&gt; This causes compilation errors within DirectShow:
+&gt;
+&gt; wxutil.h(125) : error C2065: &#39;EXECUTE_ASSERT&#39; : undeclared identifier
+&gt; amfilter.h(1099) : error C2065: &#39;ASSERT&#39; : undeclared identifier
+
+The reason for this is that __WXDEBUG__ is also used by the DXSDK (9.0
+in my case) to &#39;#pragma once&#39; the contents of
+DXSDK/Samples/C++/DirectShow/BaseClasses/wxdebug.h.  So if __WXDEBUG__
+is defined, then wxdebug.h doesn&#39;t get included, and the assert macros
+don&#39;t get defined.  You have to #undef __WXDEBUG__ before including the
+directshow baseclass&#39;s &lt;streams.h&gt;.
+</pre></blockquote>
+
+<h3><a name="#handlewm">How do I handle Windows messages in my wxWidgets program?</a></h3>
+
+To handle a Windows message you need to override a virtual
+<tt>MSWWindowProc()</tt> method in a wxWindow-derived class. You should then
+test if <tt>nMsg</tt> parameter is the message you need to process and perform
+the necessary action if it is or call the base class method otherwise.
+
+
 </font>
 
 </BODY>