Cekli PhotoLab software is developed using both wxDevC++ and Microsoft Visual C++ 2005. wxDevC++ is integrated with wxWidget, there fore the set up is done automatically. This article will explain how to use Visual C++ 2005 as IDE for Cekli PhotoLab code.
After installing Visual C++ 2005, we can download the wxWidget library for Visual Studio at http://www.wxwidgets.org/downloads/. Choose installer for windows (wxMSW) and install it on the default directory (c:\wxWidget-2.x.x\). The library must be compiled first before we can use it, it is very simple. The following steps are explained about how to compile the wxWidget library's source code:
|
The complete documentation of using Visual C++ 2005 as IDE for wxWidget source code can be found in this link. At this point, you should able to compile every sample code at folder C:\wxWidgets-2.x.x\samples.
Folder Structure
The source code and the output files are separated on the local computer. Only the source code will always be updated on the subversion server at www.sourceforge.net.
The source code on my local computer are at:
C:\working\PhotoLabSF
The output code are on:
C:\Output\CP_VC2005 for execute and all Visual studio stuff and
C:\Output\PhotoLab for execute and all wxDevC++ stuff.
Creating a New Project by Hand
The main things to worry about with project settings are the C runtime library, preprocessor definitions, additional include directories, libraries that your program needs, libraries that wxWidgets needs, and the disabling of certain default libraries to resolve symbol conflicts that might occur.
Start with a Visual C++ Win32 Project and accept the default settings.
Project Properties
General
Character Set
Select Not Set, Unicode, or Multi-Byte depending on what you need.
C/C++
Category: General
Additional include directories:
Specify the location of the wxWidgets include directory
Specify the location of the Setup.h file. You need to match it up with the wxWidgets library you are linking with. Here's the rundown: Directory Basic wxWidgets libraries Description
lib\vc_lib\msw wxmsw28_core.lib wxbase28.lib release ANSI static
lib\vc_lib\mswd wxmsw28d_core.lib wxbase28d.lib debug ANSI static
lib\vc_lib\mswu wxmsw28u_core.lib wxbase28u.lib release Unicode static
lib\vc_lib\mswud wxmsw28ud_core.lib wxbase28ud.lib debug Unicode static
Detect 64-bit Portability Issues: Select No to avoid warning messages on strings.
Category: Preprocessor:
Preprocessor definitions:
Add WINVER=0x0400
For projects using GUI components add wxUSE_GUI=1
Add __WXDEBUG__ for debug builds that link to wxWidgets debug configurations. Activates wxASSERT(), etc. See the Debugging Overview for more information.
Category: Code Generation
For the C runtime library, use the Multithreaded DLL for release and Debug Multithreaded DLL for debug builds, as the multithreaded DLL libraries are the ones wxWidgets is linked with by default. If you get something like:
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _free already defined in LIBC.lib(free.obj)
then you're linking with the wrong runtime library.
Category: Precompiled Headers
See the Tips'n'Tricks section of the wiki for setting up precompiled headers
Linker:
Category: General
Additional Library Directories
Specify the location of the wxWidgets lib directory
Category: Input
Add comctl32.lib rpcrt4.lib winmm.lib advapi32.lib wsock32.lib. wxWidgets needs these.
Add any of these that you need:
Release: wxpng.lib wxzlib.lib wxjpeg.lib wxtiff.lib
Debug: wxpngd.lib wxzlibd.lib wxjpegd.lib wxtiffd.lib
Add one of the wxWidgets libraries from the table above