Skip Navigation
List Price: $61.54

Rent Book

Select for Price
Add to Cart Free Shipping
There was a problem. Please try again later.

New Book

We're Sorry
Sold Out

Used Book

We're Sorry
Sold Out

Visual C++5,9780078823916

Visual C++5

by ;
Format: Paperback
Pub. Date: 9/1/1997
Publisher(s): McGraw-Hill Osborne Media
Availability: This title is currently not available.

Summary

Readers can find what they need fast in this comprehensive alphabetized reference. The first guide to combine the best of both worlds, the book gives in-depth coverage of the Visual C++ environment and the C/C++ programming fundamentals as they relate to Visual C++ as well as Windows 95/NT program development.

Table of Contents

Introduction xxv
Part I A Quick Overview of Visual C++ 3(90)
1 The Visual C++ Compiler, Version 5
3(18)
Recommended Hardware
6(1)
Minimum Hardware and Software Requirements
6(1)
Recommended Hardware and Software
6(1)
A Typical Windows Installation
7(1)
Directories
8(1)
Documentation
8(1)
The Development System
9(3)
The New Integrated Debugger
10(1)
The New Integrated Resource Editors
10(1)
Additional Tools
11(1)
Outside the Integrated Environment
11(1)
What's New
12(2)
Automation and Macros
12(1)
Class View
12(1)
Customizable Toolbars and Menus
13(1)
Internet Connectivity
13(1)
Project Workspaces and Files
13(1)
Wizards
14(1)
Important Compiler Features
14(3)
P-Code
14(1)
Precompiled Headers and Types
15(1)
The Microsoft Foundation Class (MFC) Library
15(2)
Function Inlining
17(1)
Compiler Options
17(4)
General
18(1)
Debug
18(1)
Custom Build
18(1)
C/C++
18(1)
Link
19(1)
Resources
20(1)
OLE Types
20(1)
Browse Info
20(1)
2 A Quick Start Using the IDE
21(30)
Starting the Visual C++ IDE
22(1)
Accessing Context-Sensitive Help
23(1)
Understanding Menus
23(1)
Docking or Floating a Toolbar
24(1)
The File Menu
24(5)
New
25(1)
Open
25(1)
Close
26(1)
Save
26(1)
Save As
26(1)
Save All
27(1)
Rename
27(1)
Page Setup
27(1)
Print
27(1)
Recent Files List
28(1)
Recent Workspaces List
28(1)
Exit
28(1)
The Edit Menu
29(4)
Undo
29(1)
Redo
29(1)
Cut
30(1)
Copy
30(1)
Paste
30(1)
Delete
30(1)
Select All
31(1)
Find
31(1)
Find in Files
31(1)
Replace
31(2)
Go To
33(1)
Bookmarks
33(1)
ActiveX Control in HTML... and HTML Layout
33(1)
Advanced
33(1)
Breakpoints
33(1)
View Menu
33(3)
Script Wizard
34(1)
ClassWizard
34(1)
Resource Symbols... and Resource Includes
35(1)
Full Screen
35(1)
Workspace
35(1)
Info Viewer Topic
36(1)
Results List
36(1)
Output
36(1)
Debug Windows
36(1)
Refresh
36(1)
Properties
36(1)
Insert Menu
36(2)
New Class
36(1)
Resource
37(1)
Resource Copy
37(1)
Into HTML
37(1)
File As Text
37(1)
New ATL Object
38(1)
Project Menu
38(2)
Set Active Project
39(1)
Add To Project
39(1)
Dependencies
39(1)
Settings
39(1)
Export Makefile
39(1)
Insert Project into Workspace
39(1)
Build Menu
40(3)
Compile
40(1)
Build
40(1)
Rebuild
41(1)
Batch Build
41(1)
Clean
41(1)
Update All Dependencies
42(1)
Start Debug
42(1)
Debugger Remote Connection
42(1)
Execute
42(1)
Set Active Configuration
42(1)
Configurations
42(1)
Profile
42(1)
Tools Menu
43(2)
Source Browser
43(1)
Close Source Browser File
43(1)
Spy++
44(1)
MFC Tracer
44(1)
Register Control
44(1)
ActiveX Control Test Container
44(1)
Error Lookup
44(1)
OLE/COM Object Viewer
44(1)
Customize
45(1)
Options
45(1)
Macro
45(1)
Window Menu
45(2)
New Window
45(1)
Split
45(1)
Docking View
45(1)
Close
46(1)
Close All
46(1)
Next
46(1)
Previous
46(1)
Cascade
46(1)
Tile Horizontally
47(1)
Tile Vertically
47(1)
History List
47(1)
Help Menu
47(4)
Contents and Search
48(1)
Documentation Home Page
48(1)
Info Viewer Bookmarks
48(1)
Synchronize Contents
48(1)
Define Subsets
48(1)
Select Subsets
48(1)
Keyboard Map
48(1)
Tip of the Day... and Technical Support
48(1)
Microsoft on the Web
48(1)
About Developer Studio
49(2)
3 Writing, Compiling, and Debugging Simple Programs
51(26)
Starting the Developer Studio
52(1)
Creating Your First Program
53(2)
Editing Source Code
55(1)
Saving Files
55(1)
Creating the Executable File
56(5)
Using Workspaces
57(2)
Choosing Build or Rebuild All
59(2)
Debugging Programs
61(8)
Differences Between Warning and Error Messages
62(1)
Your First Unexpected Bug
62(1)
Viewing Output and Source Windows
62(1)
Using Find and Replace
63(2)
Shortcuts to Switching Views
65(1)
Useful Warning and Error Messages
66(1)
More Work with the Debugger
67(2)
Running Your First Program
69(5)
Using the Integrated Debugger
69(5)
Advanced Debugging Techniques
74(2)
Using Breakpoints
75(1)
An Introduction to QuickWatch
76(1)
What's Coming?
76(1)
4 Advanced Visual C++ Features
77(16)
Creating System Resources
78(4)
Designing Bitmaps
78(3)
Designing Dialog Boxes
81(1)
Setting Resource HotSpots
81(1)
Online Documentation
82(4)
Opening Reference Materials
83(2)
Searching for Specific Topics
85(1)
Getting a Hard Copy
85(1)
Diagnostic Tools
86(2)
Spy++
86(1)
Process Viewer
87(1)
WinDiff
88(1)
What's Coming?
88(5)
Part II Programming Foundations 93(426)
5 C and C++ Programming
93(32)
C Archives
94(7)
C Versus Older High-Level Languages
95(2)
Advantages of C
97(2)
Disadvantages of C
99(1)
"C Is Not for Children!"
100(1)
American National Standards Institute--ANSI C
101(1)
From C to C++ and Object-Oriented Programming
101(3)
C++ Archives
104(6)
Object Code Efficiency
104(1)
Subtle Differences Between C and C++
105(3)
Major Differences Between C and C++
108(2)
Fundamental Components for a C/C++ Program
110(15)
Five Elements of Good C Program Design
110(1)
A Simple C Program
111(2)
A Simple C++ Program
113(1)
Adding a User Interface to a C Program
113(5)
Adding a User Interface to a C++ Program
118(2)
Adding File I/O
120(5)
6 Working with Data
125(48)
Identifiers
126(2)
Keywords
128(1)
Standard C and C++ Data Types
129(10)
Characters
130(2)
Three Integers
132(1)
Unsigned Modifier
132(2)
Floating Point
134(2)
Enumerated
136(2)
And, the New C++ Type--bool
138(1)
Access Modifiers
139(3)
const Modifier
139(1)
#define Constants
140(1)
volatile Modifier
141(1)
const and volatile Used Together
141(1)
pascal, cdecl, near, far, and huge Modifiers
142(3)
pascal
142(2)
cdecl
144(1)
near, far, and huge
144(1)
Data Type Conversions
145(2)
Explicit Type Conversions Using the Cast Operator
147(1)
Storage Classes
147(5)
Variable Declarations at the External Level
148(1)
Variable Declarations at the Internal Level
149(2)
Variable Scope Review
151(1)
Function Declarations at the External Level
151(1)
Operators
152(11)
Bitwise Operators
152(1)
Left Shift and Right Shift
153(1)
Increment and Decrement
154(2)
Arithmetic Operators
156(1)
Assignment Operator
156(1)
Compound Assignment Operators
157(2)
Relational and Logical Operators
159(3)
Conditional Operator
162(1)
Comma Operator
163(1)
Understanding Operator Precedence Levels
163(1)
Standard C and C++ Libraries
164(9)
7 Program Control
173(42)
Conditional Controls
174(18)
if
174(2)
if-else
176(3)
Nested if-elses
179(1)
if-else-if
180(2)
The ?: Conditional Operator
182(1)
switch-case
183(7)
Combining if-else-if and switch
190(2)
Loop Controls
192(23)
for
193(5)
while
198(3)
do-while
201(2)
break
203(1)
continue
204(1)
Combining break and continue
205(3)
exit()
208(3)
atexit()
211(4)
8 Writing and Using Functions
215(44)
What is Function Prototyping?
216(7)
The Syntax for Prototypes
216(3)
Ways to Pass Actual Arguments
219(2)
Storage Classes
221(1)
Identifier Visibility Rules
221(1)
Recursion
222(1)
Function Arguments
223(8)
Actual Versus Formal Parameters
223(1)
void Parameters
224(1)
char Parameters
225(1)
int Parameters
226(1)
float Parameters
227(1)
double Parameters
228(1)
Array Parameters
229(2)
Function Return Types
231(10)
void Return Type
231(2)
char Return Type
233(1)
bool Return Type
234(1)
int Return Type
235(1)
long Return Type
235(4)
float Return Type
239(1)
double Return Type
240(1)
Command-Line Arguments
241(5)
Alphanumeric
242(1)
Integral
243(2)
Real
245(1)
Functions in C Versus C++
246(5)
When Is a Function a Macro?
246(1)
Prototyping Multiple Functions with the Same Name
247(2)
Functions with Varying-Length Formal Argument Lists
249(2)
Things Not to Do with Functions
251(8)
Attempting to Access Out of Scope Identifiers
251(1)
External Versus Internal Identifier Access
252(1)
Internal Versus External Identifier Access
253(1)
It's Legal, But Don't Ever Do It!
254(2)
Overriding Internal Precedence
256(3)
9 Arrays
259(36)
What Are Arrays?
260(1)
Array Properties
260(1)
Array Declarations
261(1)
Initializing Arrays
262(3)
Default Initialization
262(1)
Explicit Initialization
263(1)
Unsized Initialization
264(1)
Accessing Array Elements
265(3)
Calculating Array Dimensions
268(2)
Array Index Out of Bounds
270(1)
Output and Input of Strings
271(3)
Multidimensional Arrays
274(4)
Arrays as Function Arguments
278(9)
Passing Arrays to C Functions
278(2)
Passing Arrays to C++ Functions
280(7)
String Functions and Character Arrays
287(8)
gets(), puts(), fgets(), fputs(), and sprintf()
288(2)
strcpy(), strcat(), strncmp(), and strlen()
290(5)
10 Using Pointers
295(58)
Pointer Variables
296(27)
Declaring Pointers
297(2)
Using Pointer Variables
299(5)
Initializing Pointers
304(1)
What Not to Do with the Address Operator
305(1)
Pointers to Arrays
306(1)
Pointers to Pointers
307(3)
Pointers to Strings
310(2)
Pointer Arithmetic
312(3)
Pointer Arithmetic and Arrays
315(2)
Problems with the Operators ++ and --
317(1)
Using const with Pointers
317(2)
Comparing Pointers
319(1)
Pointer Portability
320(1)
Using sizeof with Pointers under 16-Bit DOS Environments
320(3)
Pointers to Functions
323(4)
Dynamic Memory
327(6)
Using void Pointers
330(3)
Pointers and Arrays--a Closer Look
333(15)
Strings (Arrays of Type char)
333(1)
Arrays of Pointers
334(4)
More on Pointers to Pointers
338(8)
Arrays of String Pointers
346(2)
The C++ Reference Type
348(5)
Functions Returning Addresses
349(1)
Using the Integrated Debugger
350(1)
When Should You Use Reference Types?
350(3)
11 Complete I/O in C
353(30)
Stream Functions
355(5)
Opening Streams
355(1)
Input and Output Redirection
356(1)
Altering the Stream Buffer
357(3)
Closing Streams
360(1)
Low-Level Input and Output in C
360(1)
Character Input and Output
361(2)
Using getc(), putc(), fgetc(), and fputc()
361(1)
Using getchar(), putchar(), fgetchar(), and fputchar()
362(1)
Using getch() and putch()
363(1)
String Input and Output
363(2)
Using gets(), puts(), fgets(), and fputs()
363(2)
Integer Input and Output
365(3)
Using getw() and putw()
365(3)
Formatting Output
368(7)
Using printf() and fprintf()
370(5)
Using fseek(), ftell(), and rewind()
375(5)
Using the Integrated Debugger
378(2)
Formatting Input
380(3)
Using scanf(), fscanf(), and sscanf()
380(3)
12 An Introduction to I/O in C++
383(28)
Streamlining I/O with C++
384(10)
cin, cout, and cerr
385(1)
The Extraction and Insertion Operators
385(9)
From STREAM.H to IOSTREAM.H
394(17)
Operators and Member Functions
395(16)
13 Structures, Unions, and Miscellaneous Items
411(32)
Structures
412(23)
Structures: Syntax and Rules
412(3)
C++ Structures: Additional Syntax and Rule Extensions
415(1)
Accessing Structure Members
415(1)
Constructing a Simple Structure
416(2)
Passing Structures to Functions
418(2)
Constructing an Array of Structures
420(4)
Using Pointers to Structures
424(2)
Passing an Array of Structures to a Function
426(4)
Structure Use in C++
430(3)
Additional Manipulations with Structures
433(2)
Unions
435(3)
Unions: Syntax and Rules
435(1)
Constructing a Simple Union
436(2)
Miscellaneous Items
438(5)
Using typedef
438(2)
Using enum
440(3)
14 Advanced Programming Topics
443(32)
Type Compatibility
444(3)
ANSI C Definition for Type Compatibility
444(1)
What Is an Identical Type?
444(2)
Enumerated Types
446(1)
Array Types
446(1)
Function Types
446(1)
Structure and Union Types
447(1)
Pointer Types
447(1)
Multiple Source File Compatibility
447(1)
Macros
447(6)
Defining Macros
448(1)
Macros and Parameters
449(1)
Problems with Macro Expansions
450(2)
Creating and Using Your Own Macros
452(1)
Macros Shipped with the Compiler
453(1)
Advanced Preprocessor Statements
453(6)
#ifdef and #endif Directives
454(1)
#undef Directive
455(1)
#ifndef Directive
455(1)
#if Directive
456(1)
#else Directive
456(1)
#elif Directive
457(1)
#line Directive
457(1)
#error Directive
458(1)
#pragma Directive
458(1)
Conditional Compilation
459(1)
Preprocessor Operators
460(2)
#Stringize Operator
460(1)
##Concatenation Operator
461(1)
#@ Charizing Operator
462(1)
Proper Use of Header Files
462(1)
Making Header Files More Efficient
463(1)
Precompiled Header Files
464(1)
Creating Precompiled Headers
464(1)
Using Precompiled Headers
465(1)
LIMITS.H and FLOAT.H
465(1)
Handling Errors--perror()
466(3)
Dynamic Memory Allocation--Linked Lists
469(6)
Considerations When Using Linked Lists
470(1)
A Simple Linked List
471(4)
15 Power Programming: Tapping Important C and C++ Libraries
475(44)
Important C and C++ Header Files
476(1)
Standard Library Functions (STDLIB.H)
477(9)
Performing Data Conversions
477(4)
Performing Searches and Sorts
481(3)
Miscellaneous Operations
484(2)
The Character Functions (CTYPE.H)
486(8)
Checking for Alphanumeric, Alpha, and ASCII Values
487(2)
Checking for Control, White Space, and Punctuation
489(3)
Conversions to ASCII, Lowercase, and Uppercase
492(2)
The String Functions (STRING.H)
494(10)
Working with Memory Functions
495(3)
Working with String Functions
498(6)
The Math Functions (MATH.H)
504(11)
Building a Table of Trigonometric Values
504(3)
The Time Functions (TIME.H)
507(1)
Time and Date Structures and Syntax
508(7)
What's Coming
515(4)
Part III Foundations for Object-Oriented Programming in C++ 519(118)
16 An Introduction to Object-Oriented Programming
519(20)
There Is Nothing New Under the Sun
521(1)
Traditional Structured Programming
522(1)
Object-Oriented Programming
523(1)
C++ and Object-Oriented Programming
524(1)
Object-Oriented Terminology
524(4)
Encapsulation
526(1)
Class Hierarchy
526(2)
A First Look at the C++ Class
528(11)
A Structure as a Primitive Class
528(6)
The Syntax and Rules for C++ Classes
534(1)
A Simple C++ Class
535(4)
17 C++ Classes
539(32)
Special Class Features
540(19)
A Simple Class
540(1)
Nesting Classes
541(4)
Working with Constructors and Destructors
545(4)
Overloading Class Member Functions
549(5)
Friend Functions
554(4)
The this Pointer
558(1)
Operator Overloading
559(4)
Overloading Operators and Function Calls
559(1)
Overloading Syntax
560(3)
Derived Classes
563(8)
Derived Class Syntax
563(1)
Working with Derived Classes
564(7)
18 Complete I/O in C++
571(38)
Using enum Types in C++
572(1)
Reference Variables
573(2)
Default Arguments
575(2)
The memset() Function
577(1)
Formatting Output
578(5)
I/O Options
583(1)
The iostream Class List
583(14)
Input Stream Classes
588(2)
Output Stream Classes
590(2)
Buffered Stream Classes
592(2)
String Stream Class
594(3)
Binary Files
597(3)
Combining C and C++ Code
600(3)
Designing Unique Manipulators
603(6)
Manipulators Without Parameters
603(1)
Manipulators with One Parameter
604(2)
Manipulators with Multiple Parameters
606(3)
19 Working in an Object-Oriented Environment
609(28)
An Object-Oriented Stack
610(3)
An Object-Oriented Linked List in C++
613(20)
Creating a Parent Class
614(1)
A Derived Child Class
615(2)
Using a Friend Class
617(4)
Examining the Complete Program
621(9)
Output from the Linked List
630(3)
More Object-Oriented Programming
633(4)
Part IV Windows Programming Foundations 637(174)
20 Concepts and Tools for Windows 95 and NT
637(44)
Windows Concepts
638(9)
The Windows Environment
638(1)
The Advantages of Windows
639(7)
The Windows Executable Format
646(1)
Windows Programming Concepts and Vocabulary
647(14)
The Windows Window
647(1)
The Windows Layout
647(3)
The Windows Class
650(1)
OOPs and Windows
651(4)
Windows Messages
655(4)
Accessing Windows Functions
659(1)
The Windows Header File: WINDOWS.H
660(1)
The Components of a Windows Application
660(1)
Visual C++ Windows Tools
661(20)
Project Files
662(1)
Resources
662(1)
Resource Editors
662(18)
Additional Resource Information
680(1)
21 Procedure-Oriented Windows Applications
681(52)
A Framework for All Applications
682(15)
Components in a Windows Application
684(13)
Make or Project Utility?
697(6)
The NMAKE Utility
697(1)
Project Utility
698(5)
A Simple Windows Program and Template
703(9)
Drawing an Ellipse
706(2)
Drawing a Chord
708(1)
Drawing a Pie Wedge
709(2)
Drawing a Rectangle
711(1)
Using the SWP.C as a Template
712(4)
Creating a Windows Pie Chart Application
716(16)
The Project File
725(1)
The PIE.H Header File
726(1)
The PIE.RC Resource File
726(1)
The PIE.C Source Code
727(5)
More on Traditional C Windows Programming
732(1)
22 Microsoft Foundation Class Library: Concepts
733(22)
The Need for a Foundation Class Library
734(1)
MFC Design Considerations
735(1)
Key MFC Library Features
736(1)
It All Begins with CObject
737(3)
Important Foundation Library Classes
740(4)
A Simplified Application
744(9)
Establishing a Window with SIMPLE.CPP
744(8)
Running the SIMPLE.CPP Application
752(1)
A Simplified Design Ensures Easy Maintenance
753(2)
23 Windows Applications Using the MFC
755(56)
A Simple Application and Template
756(4)
The MFCSWP.H Header File
758(1)
The MFCSWP.CPP Source Code File
759(1)
Running MFCSWP
759(1)
Drawing in the Client Area
760(8)
The GDI.H Header File
766(1)
The GDI.CPP Source Code File
766(1)
Running the GDI Application
767(1)
A Fourier Series Application with Resources
768(19)
The FOURIER.H Header File
776(2)
The Resource Files
778(1)
The FOURIER.CPP Source Code File
778(7)
Running FOURIER
785(2)
A Bar Chart with Resources
787(21)
The BARCHART.H Header File
797(1)
The Resource Files
798(1)
The BARCHART.CPP Source Code File
799(7)
Running BARCHART
806(2)
What's Next?
808(3)
Part V Wizards 811(118)
24 Application and Class Wizards
811(48)
The Graph Application
813(23)
The AppWizard
813(5)
The ClassWizard
818(2)
Building the Application
820(12)
Drawing in the Client Area
832(4)
The Word Processor Application
836(22)
Building the Application
843(15)
What's Coming?
858(1)
25 An Introduction to OLE
859(34)
OLE Features and Specifications
860(7)
Objects
860(1)
Files
861(1)
Data
861(1)
Embedding
861(6)
Linking
867(1)
Building a Container Application
867(22)
Using the AppWizard
867(1)
The AppWizard Files
868(21)
Testing the Container Application
889(2)
What's Coming?
891(2)
26 ActiveX Controls with the MFC Library
893(36)
OLE ActiveX Controls
894(6)
ActiveX Control Design Criterion
895(1)
The COleControl Class
895(5)
Control Containers
900(1)
Creating a Control with the MFC ActiveX ControlWizard
901(14)
A Basic ActiveX Control
901(4)
A Look at Important Code
905(10)
Customizing the Initial ActiveX Control
915(8)
Changing the Shape, Size, and Colors of the TDCtrl
915(3)
Mouse Events
918(5)
Testing the TDCtrl ActiveX Control
923(2)
More ActiveX Controls?
925(4)
Part VI Appendixes 929(38)
A Extended ASCII Table
929(6)
B DOS 10H, 21H, and 33H Interrupt Parameters
935(19)
Screen Control with BIOS-Type 10H Interrupts
936(1)
Interface Control of the CRT
936(2)
Handling Characters
938(1)
Graphics Interface
938(1)
ASCII Teletype Output
939(1)
Specifications and Requirements for the DOS 21H Interrupt
940(7)
Mouse Control Functions Accessed Through Interrupt 33H
947(7)
C Dynamic Link Libraries An MFC-Based Dynamic Link Library
954(13)
The Framer.H Header File
956(4)
The Framer.CPP Source Code File
957(2)
Building the Framer.DLL
959(1)
An Application That Calls a DLL
960(5)
The DLLDEMOVIEW.H Header File
961(1)
The DLLDEMOVIEW.CPP Source Code File
962(3)
More DLLs?
965(2)
Index 967

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.

Visa
Mastercard
American Express
Comodo
McAfee