Establishing the Development Environment

VC++ Installation (28/02/2000)

Part of Visual Studio or available stand-alone

Several installation options

Visual studio IDE, wizards, etc.

Run-time libraries required for all apps to run. Static libraries bound into executables. Shared libraries dynamically link runtime to app enabling use by several executables simultaneously. Single threaded libraries for use by single threaded, statically linked apps (usually for apps target 16bit platforms). Each library has debug and release variants. Source code available for debugging.

MFC libraries = C++ framework for Windows programming. Shared and static libraries. Unicode variants available. Each library has debug and release variants. Source code for debugging. Browser database for rapid movement through MFC code.

ActiveX template library. Set of C++ templates to ease COM object creation. Less overhead than MFC. Esp. good for internet environments. Special support for COM fundamentals.

Build tools such as compiler, linker, nmake, etc.

Data access

OLE DB = low level universal data access to data regardless of format or storage. Access via COM ifaces.

ADO = easy use API to OLE DB. Easy use, high speed, low memory and disk footprint

RDS = server + client components transmit data over internet

ODBC = DBMS abstraction API

RDO = thin object layer to ODBC

Jet ISAM = Access to Jet engine (MS Access)

Data Environment = grid controls, etc.

Enterprise Tools - component repositories and management, performance modeling, analysis tools, etc.

General Tools = Development support such as trace, spu, ActiveX test containers, etc.

Visual SourceSafe = source control system

The development environment (12/03/2000)


- two main areas:


window = hierarchical tree control to access components, 3 views - class, resource, file. Right click entry -> object related properties.


window = work on open files


Fully customisable + associated hot keys

Control of environment variables - control appearance + behavior of IDE, e.g. colours in editor, info displayed by debugger, paths used by compiler, etc.


MSDN - separate HTML based environment with search engine. Integrated with IDE, press F1 goes to relevant info in MSDN.

IntelliSense - automatic statement completion for MFC, Win32 and ATL functions. Shows available options for + optionally completes recognised words.

Project config

Settings applied on project basis - either for all configs or an individual one (e.g. Debug). Control compiler, linker, etc. options.

Use of Visual Source Safe - source code control (12/03/2000)

Central copy of source files of any type within DB

Changes to files tracked - recover previous versions at any time.

Developers keep read only copies of source files on their system. Check out files to modify them, check back in when finihed.

"Get Latest Version" command -> latest version of files copied to local system.

Default = exclusive lock out, although VSS has merge facility available to permit simultaneous editing if required

Files organised in DB by project basis. Usually contain all files required for particular SW component.

VC Projects added to VSS via VC source control toolbar.

VSS Explorer = interface to VSS projects. Many common functions (check in/out, get latest version, etc.) available within VC IDE.

Used to create project DB, view VSS DB, setup up VSS users and associated passwords.

Reusing VSS Files

  • Sharing between projects - changes to file in one project reflected automatically in all other projects sharing it. Set up through share-link between projects.
  • Branching - creates a copy of a file in another project. The two files can be edited independently (i.e. now treated as separate files). At a later stage they may be merged together to recreate a single version of the file.
  • Merging - compares differences between two files, creates single file from them. Often used to amalgamate changes from parallel development on same file.

Each file has associated version history - records changes made by whom and when.

VSS projects should be frequently archived and stored securely. Enables disaster recovery.