Plucker Desktop Development in Microsoft Visual C++ (VC++)

This helps set up the development environment for VC++. Version 6 is described here. Other versions are likely similar. Nothing tricky, just a few steps.

Requirements

Step 1: Install wxWindows

This is a simple process of downloading and running the setup included in wxWindows. You will have to reboot, because wxWindows header files make use of an environmental variable that isn't set until boot time.

Step 2: Build wxWindows

In the wxWindows src directory is a file wxwindows.dsw. This is a standard Microsoft Workspace file (analogous to a makefile for other systems.) Load it into VC++ and select [Build][Batch Build]. Build everything, and go have a nice lunch or catch a movie. Even on a decently-quick system this will take an hour or so.

Step 3: Build WX-XRC

Plucker-Desktop uses the XML Resource Library, XRC, from the src/contrib subdirectory of wxWindows. Open up the included VC++ Workspace XRCVC.DSW and batch-build it also.

On a decent system this will take less than five minutes.

Step 4: Build WX-STC

Plucker-Desktop uses the WX Styled Text Control Library, STC, from the src/contrib subdirectory of wxWindows. Open up the included VC++ Workspace STCVC.DSW and batch-build it also.

On a decent system this will take less than one minute.

Step 5: Configure Desktop Project

Open up the plucker_desktop/PluckerDesktop.dsp file and load it into MSVC++ by selecting "Open Workspace", changing the file type to "Projects *.dsp", and selecting PluckerDesktop.dsp. If you don't have access to the dsp file, create a new Project and insert all the Desktop source files from cvs into it.

The PluckerDesktop.dsp VC++ project file already has these settings described below. If you are using the supplied PluckerDesktop.dsp file, then update the settings in blue to match your directory structure and ignore the rest.

(All of the following are set in the Project - Settings area).

SettingNavigationValue
Resource Resources tab
add the wxWindows include directory (e.g. d:\dev\wx\include) to the Additional resource includes directories.
Include Directories[Project][Settings][C/C++], Preprocessor tab
add the wxWindows include directory and the Contrib/Include directory (e.g. d:\dev\wx\include;d:\dev\wx\contrib\include).
MFCGeneral tabSet to Not Using MFC
Preprocessor DefinesC/C++ tab, General Category, Preprocessor Definitions editboxAdd __WXMSW__,__WIN95__
Code GenerationC/C++ tab, Code Generation categoryDefault values of Blend, CDecl calling, MultiThreaded DLL, and 8-byte alignment.
Link InclusionsLink tab, General categoryThe following are needed, mostly for wxWindows: kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib d:\dev\wx\lib\wxmswd.lib d:\dev\wx\lib\wxxrc.lib d:\dev\wx\lib\stc.lib comctl32.lib rpcrt4.lib wsock32.lib
Link ExclusionsLink tab, Inputs category, Ignore editboxFor debug mode, "Ignore" the following:libcd.lib,libcid.lib,msvcrt.lib,libc.lib
Link OptionsLink tab, Project Options edit boxRemove the /GZ if any. This disables the MS-VC++ compiler stack checking functionality preventing unresolved external __chkesp messages.
Project TypeLink tab, Project Options edit boxChange /subsystem:console to /subsystem:windows if necessary, allowing it to compile to a Windows app and see _main.

Other current requirements which may be obsolete by now:

You can now do a full build of the project.