Compiling wxWindows applications in the VC++ IDE

Settings for wxWindows 2.2 / Settings for wxWindows 1.68

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.

## Steps

1. Create a new WIN32 Application project.
2. Add the .cpp and .rc files for your project.
3. Apply the settings listed below to the project, replacing c:\wx2 with your wxWindows installation path.

## Settings for wxWindows 2.2

These settings apply to wxWindows 2.1.14 and above but most of them are not necessary any longer for wxWindows 2.3+.

General
  The Output files and Intermediate files directory fields should be Debug for the Debug configuration, and Release for the Release configuration.

Debug: General
  The Executable for debug sessions field should be altered to be the path and name you'd expect (it may have generated a different name).

C/C++: Preprocessor
  The Preprocessor definitions field should contain the following symbols for Debug:

      WIN32,_DEBUG,_WINDOWS,__WINDOWS__,__WXMSW__,__WXDEBUG__,WXDEBUG=1,
      __WIN95__,__WIN32__,WINVER=0x0400,STRICT

  and these for Release:

      NDEBUG,WIN32,_WINDOWS,__WINDOWS__,__WXMSW__,__WIN95__,__WIN32__,
      WINVER=0x0400,STRICT

  The Additional include directories field should contain the following:

      c:\wx2\include,c:\wx2\contrib\include

  (and of course any other directories you wish to use in your project).

C/C++: Precompiled Headers
  The Not using precompiled headers or Automatic use of precompiled headers button should be selected.

C/C++: Code Generation
  The Use run-time library control should be set to Debug Multithreaded DLL (Debug) or Multithreaded DLL (Release).

Link: Input
  The Object/library modules field should contain:

      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

  for the Debug configuration and

      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

  for the Release configuration.

  The Ignore libraries field should contain:

      libcd.lib,libcid.lib,msvcrt.lib

  for the Debug configuration and

      libc.lib,libci.lib,msvcrtd.lib

  for the Release configuration.

  The Additional library path field should contain

      c:\wx2\lib,c:\wx2\contrib\lib

  for both Debug and Release configurations.

Resources
  Select your .rc file. The Additional resource include directories field should contain:

      c:\wx2\include;c:\wx2\contrib\include

## Settings for wxWindows 1.68

Note: these have not yet been checked.

Debug: General
  The Executable for debug sessions field should be altered to be the path and name you'd expect (it may have generated a different name).

General
  The Output directories fields can be made blank if you want the objects and executable to be created in the project directory and not a subdirectory.

C/C++: Preprocessor
  The Preprocessor definitions field should contain the following symbols:

      WIN32,_DEBUG,_WINDOWS,wx_msw,DEBUG=1,WIN95=1,WINVER=0x0400,STRICT

  The Additional include directories field should contain the following:

      ../../include/base,../../include/msw

  (and of course any other directories you wish to use in your project).

C/C++: Precompiled Headers
  The Not using precompiled headers or Automatic use of precompiled headers button should be selected (I can't find a way of using the wxWindows PCH file).

C/C++: Code Generation
  The Use run-time library control should be set to Multithreaded DLL. This sets the compiler switch to /MD to match the wxWindows makefile.

Link: Input
  The Object/library modules field should contain:

      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

  The Ignore libraries field should contain:

      libcd.lib,libcid.lib

Resources
  Select your .rc file. The Additional resource include directories field should contain:

      ..\..\include\msw;..\..\contrib\fafa