Added VC++ IDE tech note. Sorry, I'm not going to dumb it down to plain text...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2000-06-18 14:48:08 +00:00
parent 74cb08107a
commit 5b22c8f89e
2 changed files with 283 additions and 0 deletions

View File

@@ -7,5 +7,6 @@ TN0006 Making and installing RPMs for wxWindows
TN0007 Using and modifying the BC++ IDE files TN0007 Using and modifying the BC++ IDE files
TN0008 How to learn wxWindows programming TN0008 How to learn wxWindows programming
TN0009 Creating and converting icons TN0009 Creating and converting icons
TN0010 Compiling wxWindows applications in the VC++ IDE
Version: $Id$ Version: $Id$

282
docs/tech/tn0010.htm Normal file
View File

@@ -0,0 +1,282 @@
<HTML>
<HEAD>
<TITLE>Compiling wxWindows applications in the VC++ IDE</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<a name="top"></a>
<table width=100% border=0 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#C4ECF9">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#000000">
Compiling wxWindows applications in the VC++ IDE
</font>
</td>
</tr>
</table>
<P>
<CENTER>
<a href="#wxwin2">Settings for wxWindows 2</a> / <a href="#wxwin1">Settings for wxWindows 1.68</a>
</CENTER>
<P>
To compile wxWindows samples and applications using the VC++ 5.0 or 6.0 IDE (having compiled wxWindows
using the makefile or project file provided), the following
steps and settings should be used.<P>
<H2>Steps</H2>
<ol>
<li>Create a new WIN32 Application project.
<li>Add the .cpp and .rc files for your project.
<li>Apply the settings listed below to the project, replacing c:\wx2 with your wxWindows
installation path.
</ol>
<P>
<H2><a name="wxwin2">Settings for wxWindows 2</a></H2>
These settings apply to wxWindows 2.1.14 and above.<P>
<DL>
<DT><B>General</B><DD>
The <B>Output files</B> and <B>Intermediate files</B> directory fields should be Debug
for the Debug configuration, and Release for the Release configuration.<P>
<DT><B>Debug: General</B><DD>
The <B>Executable for debug sessions</B> field should be altered to be the path and name
you'd expect (it may have generated a different name).<P>
<DT><B>C/C++: Preprocessor</B><DD>
The <B>Preprocessor definitions</B> field should contain the following symbols for Debug:<P>
<PRE>
WIN32,_DEBUG,_WINDOWS,__WINDOWS__,__WXMSW__,__WXDEBUG__,WXDEBUG=1,
__WIN95__,__WIN32__,WINVER=0x0400,STRICT
</PRE>
<P>
and these for Release:<P>
<PRE>
NDEBUG,WIN32,_WINDOWS,__WINDOWS__,__WXMSW__,__WIN95__,__WIN32__,
WINVER=0x0400,STRICT</PRE>
<P>
The <B>Additional include directories</B> field should contain the following:<P>
<PRE>
c:\wx2\include,c:\wx2\contrib\include
</PRE>
<P>(and of couse any other directories you wish to use in your project).<P>
<DT><B>C/C++: Precompiled Headers</B><DD>
The <B>Not using precompiled headers</B> or <B>Automatic use of precompiled headers</B>
button should be selected.<P>
<DT><B>C/C++: Code Generation</B><DD>
The <B>Use run-time library</B> control should be set to <B>Debug Multithreaded DLL</B> (Debug)
or <B>Multithreaded DLL</B> (Release).<P>
<DT><B>Link: Input</B><DD>
The <B>Object/library modules</B> field should contain:
<PRE>
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib
winmm.lib wxd.lib xpmd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib
</PRE>
for the Debug configuration and
<PRE>
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib
winmm.lib wx.lib xpm.lib png.lib zlib.lib jpeg.lib tiff.lib
</PRE>
for the Release configuration.<P>
The <B>Ignore libraries</B> field should contain:
<PRE>
libcd.lib,libcid.lib,msvcrt.lib
</PRE>
for the Debug configuration and
<PRE>
libc.lib,libci.lib,msvcrtd.lib
</PRE>
for the Release configuration.<P>
The <B>Additional library path</B> field should contain
<PRE>
c:\wx2\lib,c:\wx2\contrib\lib
</PRE>
for both Debug and Release configurations.
<P>
<DT><B>Resources</B><DD>
Select your .rc file. The <B>Additional resource include directories</B> field should contain:
<PRE>
c:\wx2\include;c:\wx2\contrib\include
</PRE>
</DL>
<HR>
<H2><a name="wxwin1">Settings for wxWindows 1.68</a></H2>
Note: these have not yet been checked.<P>
<DL>
<DT><B>Debug: General</B><DD>
The <B>Executable for debug sessions</B> field should be altered to be the path and name
you'd expect (it may have generated a different name).<P>
<DT><B>General</B><DD>
The <B>Output directories</B> fields can be made blank if you want the objects
and executable to be created in the project directory and not a subdirectory.<P>
<DT><B>C/C++: Preprocessor</B><DD>
The <B>Preprocessor definitions</B> field should contain the following symbols:<P>
<PRE>
WIN32,_DEBUG,_WINDOWS,wx_msw,DEBUG=1,WIN95=1,WINVER=0x0400,STRICT
</PRE>
<P>
The <B>Additional include directories</B> field should contain the following:<P>
<PRE>
../../include/base,../../include/msw
</PRE>
<P>(and of couse any other directories you wish to use in your project).<P>
<DT><B>C/C++: Precompiled Headers</B><DD>
The <B>Not using precompiled headers</B> or <B>Automatic use of precompiled headers</B>
button should be selected (I can't find a way of using the wxWindows PCH file).<P>
<DT><B>C/C++: Code Generation</B><DD>
The <B>Use run-time library</B> control should be set to <B>Multithreaded DLL</B>. This
sets the compiler switch to /MD to match the wxWindows makefile.<P>
<DT><B>Link: Input</B><DD>
The <B>Object/library modules</B> field should contain:
<PRE>
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib odbc32.lib odbccp32.lib comctl32.lib
../../lib/wx.lib ../../src/msw/dummy.obj
</PRE>
The <B>Ignore libraries</B> field should contain:
<PRE>
libcd.lib,libcid.lib
</PRE>
<P>
<DT><B>Resources</B><DD>
Select your .rc file. The <B>Additional resource include directories</B> field should contain:
<PRE>
..\..\include\msw;..\..\contrib\fafa
</PRE>
</DL>
<P>
<!--
<PRE>
From: "Chris Breeze" <chris@hel.co.uk>
To: <wxwin-users@wx.dent.med.uni-muenchen.de>
Subject: Re: Compiling 2.0 wxWin Apps in the VC IDE
Date: Wed, 20 May 1998 14:18:02 +0100
First the apology: the description below is for wx1.68
not for wx2.0 - sorry if I confused everybody.
Anyway, third time lucky I hope! The settings for
VC++ 5.0, wx2.0 beta 8, NT Workstation 4.0 sp3
are:
In project / settings / C/C++:
Add "__WINDOWS__" to the pre-processor definitions
Add "{wx}\include" to the additional include directories
where {wx} is the directory in which wx is installed
In project / settings / Resources:
add "{wx}\include" to the additional resource include directories
In project / settings / Link:
Add "wx.lib comctl32.lib dummy.obj" to the Object/Library modules
Add "libcd.lib,libcid.lib" to ignore libraries (under the "input" category)
Add "{wx}\lib,{wx}\src\msw" to the additional library path
I have tested these settings on samples/minimal and can
build exes which can be debugged using Developer Studio.
I hope I've finally answered the original question. (Next time
I'll read the question more carefully!).
Regards,
Chris
Original message (settings for wx1.68c):
) Try the following (tested with VC++ 5 on NT4):
)
) Create a new Win32 Application project and insert the source files
) (including .rc files).
)
) In project / settings / C/C++:
) Add wx_msw to the pre-processor definitions
) add {wx}\include\base,{wx}\include\msw to the additional include
directories
) where {wx} is the directory in which wx is installed
)
) In project / settings / Resources:
) add {wx}\include\msw;{wx}\contrib\fafa to the additional resource include
) directories
)
) In project / settings / Link:
) Add comctl32.lib wx.lib dummy.obj ctl3d32.lib to the Object/Library modules
)
) Add libc to ignore libraries (under the "input" category)
)
) Add {wx}\lib,{wx}\src\msw to the additional library path
)
) These settings are for a debug build. You can use the same settings for
) a release build apart from ignoring libc.
</PRE>
-->
</font>
</BODY>
</HTML>