[Home]
User's Guide and Reference
Copyright © 1995-2001 Digital Mars Corporation.
All Rights Reserved.
Part 1: Welcome to Digital Mars C++
- Introducing Digital Mars C++
- Prerequisites for Using Digital Mars C++
- Fulfilling the prerequisites
- Conventions
- Finding the Information You Need
- Suggestions for the new users of Digital Mars C++
- Suggestions for users new to Windows development
- Suggestions for users porting to Digital Mars C++
- Suggestions for users upgrading to Digital Mars C++ version 7
- Introducing the IDDE
- Running Digital Mars C++ under Windows 3.1, Windows 95, and
- Windows NT
- Starting and exiting the IDDEs
- IDDE Windows and Toolboxes
- IDDE main window
- The title/status bar
- The menu bar
- The IDDE toolboxes
- The IDDE windows
- Using the IDDE
- Creating a project
- Using workspaces
- Creating and editing your application
- Debugging your application
- Using help
Part 2: Creating an Application with Digital Mars C++
- Starting a Project and Defining Workspaces
- What Are Projects and Workspaces?
- Starting a Project
- Purpose of a project
- Contents of a project
- Creating a new project
- Opening an Existing Project
- Adding and deleting project files
- The Project window
- Closing a project
- Importing a Microsoft or Borland project
- Defining Workspaces
- The purpose of workspaces
- Creating a workspace
- Selecting a workspace
- More options for workspaces
- Generating an Application Framework
- What Is an Application Framework?
- Creating a Framework with AppExpress
- Launching AppExpress
- Looking at the AppExpress window
- Specifying an application framework
- Building on a Framework with ClassExpress
- Launching ClassExpress
- Looking at the ClassExpress window
- Writing a message map with ClassExpress
- Adding a new class to your application
- Defining Classes and Their Hierarchies
- Parsing and Browsing
- How the class browsers expand macros
- Browsing library source code
- Class Editor
- Creating classes
- Editing inheritance relationships
- Working with class members
- Viewing and editing source files
- Hierarchy Editor
- Creating classes
- Editing inheritance relationships
- Working with class members
- Viewing and editing source files
- Editing Program Code
- Role of the Text Editor
- The Source Window
- File Manipulation
- Creating files
- Opening files
- Saving files
- Writing blocks of text to files
- Printing files
- Closing files
- Text Editing
- Typing mode
- Word wrap
- Indentation
- Moving around in a file
- Selecting text
- Searching and replacing
- Undoing edits
- Text Editor Options
- Compiling Files and Checking Errors
- Adding Look and Feel with Resources
- What Are Resources?
- Resource Types
- Using ResourceStudio
- Starting ResourceStudio
- Creating a new resource file
- Editing a resource file
- Creating a new menu resource
- Creating a new dialog resource
- Creating a new bitmap resource
- Useful ResourceStudio features
- Managing Resource IDs
- Resource ID field
- Automatic creation of resource IDs
- Resource ID browsing
- Testing an Application
- Debugger Highlights
- Choosing an Environment for Debugging
- Building a Project
- Selecting the project type
- Setting compiler and linker options for debugging
- Building executable files
- Other project options
- Running a Project
- Quick Start: Debugging an Application
- Stepping through code
- Setting and clearing breakpoints
- Executing up to a statement
- Viewing a list of functions
- Examining the values of variables
- Examining the call chain
- Setting watchpoints
- Letting your program run until the next breakpoint
- Letting your program run until it terminates
- Interrupting execution of the debugged application
Part 3: Learning Digital Mars C++ by Example
- Introduction to the Tutorial
- Prerequisite Knowledge
- The Tutorial Application
- Tutorial Structure
- Tutorial Source Code
- Lesson 1: Create the DOS Application
- Starting the IDDE and Loading a Project
- Editing Source Code
- Building and Running the Application
- Setting Up a Workspace for Debugging
- Running in Debugging Mode
- Setting and running to breakpoints
- Viewing data
- Stepping through code
- Running to the end
- Ending the debugging session
- Lesson 2: Generate an Application Framework
- Generating the Framework
- Building and Running the New Project
- Using Precompiled Headers
- Adding TRACE Calls with Class Editor
- Watching TRACE Output in the Trace Messages Window
- The Application Framework and MFC Classes
- Lesson 3: Customize the Interface
- Launching ResourceStudio
- Customizing the Menu
- Customizing the Accelerator Table
- Importing a New Toolbar Bitmap
- Exiting ResourceStudio
- Setting Up the New Toolbar
- Building and Running the Application
- Lesson 4: Add Messages with ClassExpress
- Windows Message Handling in MFC
- Message handling in a traditional Windows application
- MFC's design
- Launching ClassExpress
- The lists on the Message Maps page
- Adding Message Handlers
- Adding a handler for WM_ SIZE
- Adding other message handlers
- What you have just done
- Saving Your Work
- Adding Code to Handlers
- Building and Running the Project
- Summary
- Lesson 5: Add a Dialog Box with ClassExpress
- Building and Exploring the TML Reader
- Building the Reader
- Exploring the capabilities of the Reader
- Turning aspects of the Reader's display into preferences
- Using ResourceStudio to Add a Menu Item
- Using ClassExpress to Create a New Dialog Class
- Using ClassExpress to Add Methods
- Creating a handler for the Preferences command
- Creating a handler for the Default button of the
- Preferences dialog box
- Adding Dialog Data Exchange and Validation
- Adding data members to CPrefDialog
- Seeing the changes in the CPrefDialog source files
- Writing Code for the New Handlers
- Implementing CTMLReadView:: OnViewPrefs
- Implementing CPrefDialog:: OnDefault
- Rebuild and Test TMLRead
- Summary
Part 4: More about Creating Programs
- More about Projects and Workspaces
- Environment Menu Commands
- More about Projects
- What a project contains
- Project-generated files
- Hierarchical project structure
- Dependency tracking
- Project menu commands
- Target settings
- Build settings
- Option sets
- VCS options
- Directories
- The Project Window
- Parse menu commands
- View menu commands
- Trace menu commands
- VCS
- Project window left pane pop-up menu commands
- Project window right pane pop-up menu commands
- "..." pop-up menu commands
- Project window mouse functions
- More about Project Build Settings
- Introducing Build Settings
- Compiler
- char behavior
- Prototyping
- International characters
- Other options
- Code Generation
- Code segment
- Struct alignment
- Target CPU
- Header Files
- Memory Models
- Memory model
- Data segment
- Code Optimizations
- Windows Prolog/ Epilog
- Output
- Warnings
- Debug Information
- Linker
- Packing & Map File
- Packing
- Map file
- Map file options
- Definitions
- Segments
- Segment Type
- Attributes
- Access Rights
- Instance
- Mode
- Imports/Exports
- Resource Compiler
- Make
- IDDE make options
- Netbuild
- Build order
- Link order
- External Make
- Librarian
- More about AppExpress
- Selecting an Application Type
- Applications
- OLE Options group
- Project options group
- Providing Miscellaneous Information
- The Document/ View Architecture
- Frame window
- View
- Document
- Pulling it all together: the document template
- More a bout Message Maps
- The rationale for maps
- Components of the message map
- Generating and Examining the Source Files
- More about ClassExpress
- Deriving a Class to Handle User Interface Events
- Working with Data Transfer: DDX and DDV
- Implementing Dialog Data Exchange (DDX) using
- ClassExpress
- Understanding data transfer at the source code level
- Making Your Application an OLE Automation Server
- What is an OLE automation server?
- OLE Automation Server vs. OLE Server
- Enabling your application to be an OLE automation
- server
- Adding exposed functions to an automation server
- class
- Adding properties to an automation server class
- OLE automation server source code
- Making Your Application an OLE2 Automation Client
- Creating a C++ Wrapper Class for an Existing VBX
- Summary
- Class Editor Reference
- The Class Editor Window
- Edit menu commands
- Goto menu commands
- Macro menu commands
- New! command
- Classes pane pop-up menu commands
- Members pane pop-up menu commands
- Source pane pop-up menu commands
- Class editor mouse functions
- Toolbar commands
- Class Editor Settings
- General options
- Class options
- Member options
- Hierarchy Editor Reference
- The Hierarchy Editor Window
- Edit menu commands
- Macro menu commands
- New! command
- Pop-up menu commands
- Mouse functions
- Toolbar commands
- Members Child Window
- Member menu commands
- Pop-up menu commands
- Mouse functions
- Source Child Window
- Edit menu commands
- Goto menu commands
- Pop-up menu commands
- Mouse functions
- Hierarchy Editor Settings
- General options
- Hierarchy options
- Member options
- Text Editor Reference
- The Source Window
- File menu commands
- Edit menu commands
- Goto menu commands
- Macro menu commands
- New! command
- Pop-up menu commands
- Toolbar commands
- Text Settings
- General options
- Text options
- C++ options
- Keys options
- Display options
- Backup options
- Using Global Find
- Defining the search
- Search files
- Search Pattern
- Regular Expressions
- The Search window
- Search menu commands
- Toolbar commands
- Using Version Control
- Overview of VCS Concepts
- Terminology
- Version control models
- Setting Up Version Control with VCS
- Using the linear model with VCS
- Using the parallel model with VCS
- Setting VCS Options
- Choosing a Development Model
- Get Options
- Merge Options
- Creating a VCS Configuration File
- Selecting the configuration file
- The PVCS Registration dialog box
- Putting Revisions into the Archive
- Getting Revisions from an Archive
- Merging Revisions
- Testing the MERGE operation
- Using the VCS Manager
- Creating a Master Archive
Part 5: More about Testing Programs
- Controlling and Configuring the Debugger
- Commands o n the Debug Menu
- General
- Exceptions (32-bit IDDE only)
- Multiple EXE/ DLL debugging
- Debug Toolbox Icons
- Working with Breakpoints
- Unconditional breakpoints
- Conditional and delayed breakpoints
- Examples of conditional breakpoints
- Working with Watchpoints
- Setting watchpoints
- Use watchpoints on local variables with caution
- Commands Available in Debugging Mode
- Debug Windows and Commands
- Drag and drop
- Accelerator keys
- The Assembly Window
- View menu
- Bpt menu
- Others menu
- Pop-up menu
- The Breakpoint Window
- Show menu
- Bpt menu
- Pop-up Menu
- The Call Window
- The Command Window
- The Console Window
- The Data/ Object Window
- Find menu
- View menu
- Show menu
- Expr menu
- Bpt menu
- Watch menu
- ShowAs Menu
- Modify!
- Inspect!
- New!
- Pop-up menu
- The Function Window
- Find menu
- Show menu
- Bpt menu
- View menu
- Pop-up menu
- The Graphic Data Window
- Simple graphs
- Complex graphs
- Show menu
- Zoom menu
- Others
- The Inspector Window
- Find Menu
- View Menu
- Show Menu
- ShowAs Menu
- Watch menu
- Modify!
- Delete!
- Pop-up menu
- The Memory Window
- View menu
- Watch menu
- Others menu
- Pop-up menu
- The Output Window
- The Project Window
- Parse menu
- View menu
- Trace menu
- VCS menu
- Pop-up menus
- The Register Window
- View menu
- Others menu
- Pop-up menu
- The Source Window
- The Spy Window
- File menu
- Show menu
- Bpt menu
- Commands menu
- The Thread Window (32-Bit IDDE Only)
- Show menu
- Action menu
- Pop-up menu
- The Trace Messages Window
- File Menu
- Options Menu
- Clear!
- The Trace Messages Window
- File Menu
- Options Menu
- Clear!
- The Watch Window
- Show menu
- Commands menu
- Pop-up menu
Part 6: About Managing Resources
- ResourceStudio Window
- The Shell Window
- File menu commands
- Edit menu commands
- Window menu commands
- Help menu commands
- Toolbar commands
- The Browser Window
- File menu commands
- Edit menu commands
- Resource menu commands
- Toolbar commands
- Resource properties
- Dialog Editor
- Dialog Editor
- DialogExpress
- File menu commands
- Edit menu commands
- Dialog menu commands
- Controls menu commands
- Tool menu commands
- Toolbar commands
- Toolbox
- Dialog box properties
- Picture properties
- Text properties
- Edit control properties
- Group box properties
- Push button properties
- Check box properties
- Radio button properties
- Listbox properties
- Combobox properties
- Scroll bar properties
- Custom control properties
- User control properties
- Animate control properties
- Tree view properties
- Tab control properties
- List view control properties
- Hotkey properties
- Track Bar properties
- Progress control properties
- Up/ Down control properties
- Menu, Accelerator and String Table Editors
- Menu Editor
- File menu commands
- Edit menu commands
- Menu menu commands
- Outline menu commands
- Toolbar commands
- Popup item properties
- Menu item properties
- Accelerator Table Editor
- File menu commands
- Edit menu commands
- Toolbar commands
- Accelerator properties
- String Table Editor
- File menu commands
- Edit menu commands
- Toolbar commands
- String properties
- Bitmap, Cursor, Icon, and Font Editors
- Bitmap Editor
- BitmapExpress
- File menu commands
- Edit menu commands
- View menu commands
- Tool menu commands
- Image menu commands
- Toolbar commands
- Toolbox
- Bitmap properties
- Cursor Editor
- File menu commands
- Edit menu commands
- View menu commands
- Tool menu commands
- Image menu commands
- Toolbar commands
- Toolbox
- Cursor properties
- Icon Editor
- File menu commands
- Edit menu commands
- View menu commands
- Tool menu commands
- Image menu commands
- Toolbar commands
- Toolbox
- Icon properties
- Font Editor
- FontExpress
- File menu commands
- Edit menu commands
- View menu commands
- Tool menu commands
- Image menu commands
- Toolbar commands
- Toolbox
- Font properties
- Other Editors
- Version Information Editor
- File menu commands
- Edit menu commands
- Toolbar commands
- Header properties
- Block properties
- Custom Resource Editor
- File menu commands
- Edit menu commands
- Toolbar commands
- Custom resource properties
Part 7: Appendixes
- A. Expression Evaluation
- Entering Expressions
- Symbols and Their Scope
- Scope override
- Register symbols
- Operators
- Primary
- Unary
- Binary
- Assignment
- Considerations When Using C++ Expressions
- Access to class members
- Ambiguous references
- Constructors and destructors
- Overloaded functions
- Overloaded operators
- Function and Procedure Calls
- Evaluating expressions with function calls
- Side effects of expression evaluation
- Expression Evaluation Errors
- B. IDDE Settings and Command-Line Options
- Mapping IDDE Options to Command-Line Parameters
- C. Using NetBuild
- Using the Build Client
- Configuring the build client
- Starting a distributed build
- Monitoring a distributed build
- Stopping a distributed build
- Using a Build Server
- Starting a b uild server
- Configuring a build server
- Stopping a build server
- Troubleshooting
- NetBuild Messages
- Build client messages
- Build server messages
- Network errors
Copyright
Digital Mars C++ is a trademark of Digital Mars Corporation. Other brands and
their products are trademarks of their respective holders and should be
noted as such.
The Digital Mars C++ User's Guide and Reference is copyrighted and all rights
are reserved. Information in this document is subject to change without
notice and does not represent a commitment on the part of Digital Mars
Corporation. The software described in this document is furnished under a
license agreement. The document may not, in whole or in part, be copied,
photocopied, reproduced, translated, or reduced to any electronic medium
or machine-readable form without prior consent, in writing, from Digital Mars
Corporation.
DIGITAL MARS MAKES NO WARRANTIES, EITHER EXPRESS
OR IMPLIED, REGARDING THE ENCLOSED COMPUTER SOFTWARE
PACKAGE, ITS MERCHANTABILITY, OR ITS FITNESS FOR ANY
PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS
NOT PERMITTED BY SOME STATES. THE ABOVE EXCLUSION MAY NOT
APPLY TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL
RIGHTS. THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH
VARY FROM STATE TO STATE.