第—部分 Visual C+简介 2
第一章 Visual C++环境 2
1.1VISUAL C++各种版本之间的区别 3
1.2小结 4
第二章 Visual C++2.0的新特征 5
2.1 Visual Workbench 5
2.2 Visual Workbench用户界面 5
2.2.1 File菜单 5
2.2.2 Edit菜单 9
2.2.3 Search菜单 10
2.2.4 Project菜单 12
2.2.5 Resource菜单 17
2.2.6 Debug菜单 17
2.2.7 Tools菜单 22
2.2.8 Window菜单 25
2.2.9 Help菜单 26
2.2.10创建新的工程文件 27
2.2.11 AppWizard用户界面 27
2.2.12 WevCale计算器 30
2.2.13为什么要有基于对话框的程序 34
2.3 VISUAL WORKBENCH编辑器 34
2.3.1编辑C/C++源文件 34
2.3.2编辑资源对象 36
2.4对WEVCALC的总结 57
2.5小结 57
第三章 新的编译器特点 58
3.1模板 58
3.1.1模板是什么 58
3.2异常处理 66
3.3结构化异常处理 67
3.3.1 C++异常处理 69
3.4小结 71
第四章 MFC中的新特征 72
4.1对32位程序的支持 72
4.2新的GDI函数 72
4.3新的USER函数 72
4.4对异常处理的支持 72
4.5关于集合的C++模板类 72
4.6制表对话框(特征页) 73
4.7更先进的图示行支持 73
4.8 Unicode和双字节字符集(DBCS)支持 73
4.9新的3D控制 74
4.10细标题条窗口 74
4.11为MEC中的命令范围或控件IDS赋单个处理程序 74
4.12 MFC 3.0对CString添加新的函数性 74
4.13 MFC2.0中移动时的OLE类支持 74
4.14 MFC2.0中移动时对数据库交互的支持 74
4.15小结 75
第五章 用Visual C++调试 76
5.1使用Visual C++2.0的标准调试 76
5.1.1 Disassembly窗口 77
5.1.2 Memory窗口 81
5.2 Just—IN—Time调试 82
5.3剖析 83
5.3.1哪些函数使用最频繁 83
5.3.2哪些函数使用了大部分的时间 83
5.3.3哪些函数从未被调用 84
5.4为剖析准备程序 84
5.5小结 85
第六章 外部Visual C+实用程序 86
6.1 PortTool 86
6.2 Spy+++ 86
6.2.1 Spy菜单 87
6.2.2 Tree菜单 88
6.2.3 View菜单 88
6.2.4 Messages菜单 88
6.2.5 Window菜单 89
6.2.6 Help菜单 89
6.3 DDE Spy 89
6.4命令行编译器 89
6.5链接 91
6.6 Lib 94
6.7 Profiler 95
6.8 BSCMAKE 95
6.9 DumpBin 96
6.10 EditBin 97
6.11 NMake 98
6.12 Resource Compiler 98
6.13 PView 99
6.14帮助编译器 99
6.15 WinDiff 100
6.16 ZoomIn 100
6.17 Windows的调试版本 100
6.18 MFC TRACE OPTIONS 101
6.19 Shed:分段的超图Hotspot编辑器 103
6.20帮助文件 103
6.21小结 106
第二部分 Windows编程 108
第七章 使用Unicode 108
7.1 SBCS符集 108
7.2 DBCS字符集 109
7.3 Unicode字符集 110
7.4在应用程序中包含Unicode支持 114
7.5小结 115
第八章 多线程执行的编程 116
8.1 MFC 3.0与多线程执行的程序 116
8.1.1 CWinThread () 116
8.1.2 CWinThread(AFX_THREADPROC pfnThreadProc,LPVOID pParam) 117
8.1.3 void m _ pThreadParams 117
8.1.4 AFX_THREADPROC m_pfnThreadProc() 117
8.1.5 void Common Construct () 117
8.1.6 virtual~CWinThread () 118
8.1.7 BOOL CreateThread(DWORD dwCreateFlags=0, UINT nStackSize =0, LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL); 118
8.1.8 CWnd m_pMainWnd 118
8.1.9 BOOL m_bAutoDelete 119
8.1.10 HANDLE m_hThread 119
8.1.11 DWORD m_nThreadID 119
8.1.12 int GetThreadPriority () 119
8.1.13 BOOL SetThreadPriority(hThread,nPriority) 119
8.1.14 DWORD SuspendThread(hTread) 119
8.1.15 DWORD ResumeThread(hThread) 120
8.1.16 virtual BOOL InitInstance() 120
8.1.17 virtual int Run () 120
8.1.18 virtual BOOL PreTranslateMessage(MSG pMsg) 120
8.1.19 virtual BOOL OnIdle(LONG ICount) 120
8.1.20 virtual int ExitInstance()(CException e,const MSG pMsg) 120
8.1.21 virtual LRESULT ProcessWndProcException(CException e,const MSG * pMsg) 120
8.1.22 virtual CWnd * GetMainWnd() 120
8.1.23 void Delete () 120
8.1.24 MSG m_msgCur 120
8.1.25 virtual BOOL PumpMessage () 121
8.1.26 virtual BOOL IsIdelMessage (MSG pMsg) 121
8.1.27 FAXWIN.H 中的 CWinThread 121
8.1.28线程的终止 122
8.2 Threadie的报复机会:一个多线程执行程序 122
8.3小结 132
第九章 制表对话框 133
9.1 CPropertyPage 133
9.1.1 CPropertyPage(UINT nIDTemplate, UNITnIDCaption=0) 133
9.1.2 LPCTSTR lpszTernplateName,UINT nIDCaption=0) 133
9.1.3 void Cancel (ToClose() 133
9.1.4 void SetModified(BOOL bChanged = TRUE); 134
9.1.5 virtual BOOL OnSetActive () 134
9.1.6 virtual void OnOK O ; 134
9.1.7 virtual void OnCancel() 134
9.1.8 virtual BOOL PreTranslateMessage(MSG pMsg) 134
9.1.9 AFXDLGS.H中的CPropertyPage 134
9.2 CPropertySheet 136
9.2.1 CPropertySheet(UINT nIDCaption,CWnd pParentWnd= NULL, UINT iSelectPage=0) 136
9.2.2 BOOL Create (CWnd pParentWnd=NULL, DWORD dwStyle=WS _ SYSMENU | WS POPUP | WS CAPTION| WS _ MODALFRAME | WS _ VISIBLE, DWORD dwExStyle =WS EX DLGMODALFRAME) 136
9.2.3 int GetPageCount () const 137
9.2.4 CPropertyPage GetPage(int nPage)const 137
9.2.5 int DoModal () 137
9.2.6 void AddPage (CPropertyPage pPage) 137
9.2.7 void RemovePage (PropertyPage pPage)和 void RemovePage (int nPage) 137
9.2.8 void EndDialog (int nEndID) 137
9.2.9 AFXDLGS.H中的CPropertySheet 137
9.3 PropShet程序 139
9.4小结 146
第三部分 OLE2 148
第十章 OLE Custom Control简介 148
10.1 Control Development Kit(控件开发工具) 148
10.2几个OLE定义 150
10.2.1 OLE 150
10.2.2对象 150
10.2.3包容器 151
10.2.4链接的对象 151
10.2.5嵌入的对象 151
10.2.6 Windows对象 151
10.2.7 DDE 151
10.2.8自动化服务器 151
10.2.9事件 152
10.2.10服务器 152
10.3服务器、文档和包容器之间的关系 152
10.4什么是OLE Control 153
10.5在应用程序中使用OLE Control 154
10.5.1来自Microsoft的应用程序 154
10.6小结 154
第十一章OLE控件开发工具 155
11.1ControlWizard 155
11.1.1 Project Options 155
11.1.2 ControlOptions 156
11.1.3 Controls 157
11.1.4创建OLE控件 157
11.2 Register/Unregister Control 158
11.3 Test Container 158
11.4 WPS 162
11.5 Make TypeLib 165
11.6小结 167
第十二章 创建一个OLE控件 169
12.1创建一个OLE控件包容器 169
12.2向OLE控件添加属性 171
12.2.1库存属性:颜色 171
12.2.2向Clock Control添加函数性 175
12.2.3另外的库存属性:字体 179
12.2.4定制属性 181
12.3向OLE控件添加事件 187
12.3.1库存事件 188
12.3.2定制事件 190
12.4向OLE控件添加方法 193
12.5添加库存方法 194
12.6添加定制方法 195
12.7再多一点零碎东西 197
12.8认可合法化 198
12.8.1向新控件添加认可合法化 198
12.8.2向时钟添加认可合法化 198
12.9使用我们的OLE控件 200
12.10传送OLE控件 200
12.11小结 202
第十三章 向应用程序添加OLE控件 203
13.1应用程序用户 203
13.2应用程序开发人员 203
13.3 OLE控件开发人员 203
13.4 Access 2.0和OLE控件 204
13.5小结 208
第四部分 ODBC 210
第十四章 介绍ODBC 210
14.1什么是ODBC 210
14.2 ODBC函数 211
14.2.1初始化 212
14.2.2访问数据 212
14.2.3结束链接 214
14.3 MFC和ODBC 214
14.3.1 CDatabase类 215
14.3.2 CRecordSet类 218
14.3.3 CRecordView类 227
14.4 ODBC过程 229
14.5小结 231
第十五章 ODBC服务器 232
15.1驱动程序考查 232
15.2Access Data(*.MDB) 233
15.2.1驱动程序参数 233
15.2.2所要知道的一些事件 234
15.2.3向Access Datasource的链接 234
15.2.4 SQL函数支持 235
15.3 dBASE Files(*.DBF) 236
15.3.1驱动程序参数 236
15.3.2需要知道的一些事情 237
15.3.3向dBASE DataSource的链接 238
15.3.4 SQL 函数支持 238
15.4 FoxPro Files(*.DBF) 239
15.4.1驱动程序参数 239
15.4.2要知道的一些事情 240
15.4.3向FoxPro DataSource链接 241
15.4.4 SQL 函数支持 241
15.5 Paradox Files(*.DB) 242
15.5.1驱动程序参数 242
15.5.2要知道的一些事情 243
15.5.3向Paradox DataSource链接 244
15.5.4 SQL函数支持 244
15.6 Btrieve Data (FILE.DDF) 246
15.6.1驱动程序参数 246
15.6.2应知道的一些事情 246
15.6.3向Btrieve DataSource 247
15.6.4SQL函数支持 247
15.7 Excel Files(*.XLS) 248
15.7.1驱动程序参数 248
15.7.2需要知道的一些事情 248
15.7.3向Excel DataSource链接 249
15.7.4 SQL函数支持 249
15.8 Text Files(*.TXT,*.CSV) 250
15.8.1驱动程序参数 251
15.8.2要知道的一些事情 251
15.8.3向文本文件DataSource链接 252
15.8.4 SQL函数支持 252
15.9 SQL Server 253
15.9.1驱动程序参数 253
15.9.2需要知道的事情 253
15.9.3向SQL Server DataSoure的链接 254
15.9.4 SQL 函数支持 254
15.10 Oracle 255
15.10.1驱动程序参数 255
15.10.2需要知道的事情 255
15.10.3向Oracle Server DataSource链接 255
15.10.4 SQL 函数支持 256
15.11小结 256
第十六章SQL介绍 257
16.1 SQL语句组成 257
16.1.1 ALTER DATABASE命令 258
16.1.2 ALTER TABLE命令 258
16.1.3 BEGIN…END关键字 258
16.1.4 BEGIN TRASACTION语句 258
16.1.5 BREAK命令 258
16.1.6 CHECKPOINT命令 258
16.1.7 COMMIT TRANSACTION命令 258
16.1.8 COMPUTE关键字 259
16.1.9 CONTINUE命令 259
16.1.10 CONVERT命令 259
16.1.11 CREATE DATABASE命令 259
16.1.12 CREATE DEFAULT命令 259
16.1.13 CREATE INDEX命令 259
16.1.14 CREATE PROCEDURE命令 259
16.1.15 CREATE RULE命令 259
16.1.16 CREATE TABLE命令 259
16.1.17 CREATE TRIGGER命令 259
16.1.18 CREATE VIEW命令 260
16.1.19 DECLARE关键字 260
16.1.20 DELETE命令 260
16.1.21 EXECUTE命令 260
16.1.22 GOTO命令 260
16.1.23 GRANT命令 260
16.1.24 GROUP BY关键字 260
16.1.25 HAVING关键字 261
16.1.26 IF…ELSE命令 261
16.1.27 INSERT命令 261
16.1.28 ORDER BY命令 261
16.1.29 RETURN命令 261
16.1.30 REVOKE命令 261
16.1.31 ROLLBACK TRANSACTION命令 261
16.1.32 SAVE TRANSACTION命令 261
16.1.33 SELECT语句 261
16.1.34 SET命令 264
16.1.35 TRUNCATE TABLE命令 264
16.1.36 UNION运算符 264
16.1.37 UPDATE命令 264
16.1.38 USE命令 264
16.1.39 WAITFOR命令 264
16.1.40 WHERE关键字 264
16.1.41 WHILE命令 265
16.2小结 266
第十七章 创建ODBC包容器应用程序 267
17.1 Visual C++2.0的32位ODBC程序与用早期的Visual C++创建的程序之间的区别 267
17.2 CardFile:不再有人用这个名称了吗 268
17.3完成ODBC包容器程序后干什么 272
17.4添加和删除记录 273
17.4.1添加记录 275
17.4.2删除记录 278
17.5记录排序 279
17.6在CardFile中使用数据域 281
17.7使CardFile适合于对话框模板 281
17.8完成CardFile 282
17.9小结 290
第十八章 向现有的Windows应用程序添加ODBC 291
18.1使用MFC数据库类 291
18.1.1 CRecordView类 291
18.1.2 CDatabase类 293
18.1.3 CRecordSet类 293
18.2 SQL…()函数 312
18.2.1使用SQI…()函数 314
18.3小结 321
第十九章 向不同的DataSource链接 322
19.1获得DataSource名 323
19.2获得表的名称 330
19.2.1文本格式DataSource的表名 330
19.2.2非文本格式DataSource的表名 331
19.3小结 335
第二十章 获得关于驱动程序的信息 337
20.1 SQLDataSource () 337
20.1.1参数和返回代码 340
20.1.2错误详情 341
20.2 SQLGetInfo() 342
20.2.1参数和返回代码 348
20.2.2错误详情 356
20.3 SQLGetFunctions() 357
20.3.1参数和返回代码 357
20.3.2错误详情 359
20.4 SQLGetTypeInfo() 359
20.4.1参数和返回代码 360
20.4.2错误详情 362
20.5小结 362
附录A术语表 363
附录B编译器选项 367
附录C链接器选项 369
附录D资源编译器选项 371
附录E使Visual C++编程容易产品 372