📄 errata-dissecting-mfc-2e.htm
字号:
color=#0000ff>0</FONT></STRONG><BR><BR>页次:p182<BR>原文: #0061 #include
<afxmsg_.h><BR>更正: #0061 #include <STRONG><FONT
color=#0000ff>"afxmsg_.h"</FONT></STRONG><BR><BR>页次:p185 AFXMSG_.h<BR>原文:
#0008 { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv,
(AFX_PMSG)memberFxn },<BR>更正: #0008 { WM_COMMAND, <STRONG><FONT
color=#0000ff>0</FONT></STRONG>, (WORD)id, (WORD)id, AfxSig_vv,
(AFX_PMSG)memberFxn },<BR><BR>页次:p204<BR>原文: #0070 #include
<afxmsg_.h><BR>更正: #0070 #include <STRONG><FONT
color=#0000ff>"afxmsg_.h"</FONT></STRONG><BR><BR>页次:p208 AFXMSG_.h<BR>原文:
#0008 { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv,
(AFX_PMSG)memberFxn },<BR>更正: #0008 { WM_COMMAND, <STRONG><FONT
color=#0000ff>0</FONT></STRONG>, (WORD)id, (WORD)id, AfxSig_vv,
(AFX_PMSG)memberFxn },<BR><BR><BR>◆其他错误<BR><BR>页次:p469 L5<BR>原文:
List:无次序性,无索引的双向串列。...<BR>更正: List:<FONT
color=#0000ff>有</FONT>次序性,无索引的双向串列。...<BR><BR>页次:p540
L-1<BR>更正:在最後一行「重新编译联结,...」之前补充两行:<BR>
<FONT color=#0000ff>并将 scribbledoc.h 中的 m_strokeList
修改为:<BR>
CTypedPtrList<CObList, CObject*> m_strokeList;</FONT></P>
<P align=left>页次:p749 图14-2 右上方<BR>原文: Module Database(PDB)<BR>更正: Module
Database(<FONT color=#0000ff><STRONG>M</STRONG></FONT>DB)<BR></P>
<P align=left><STRONG><FONT color=#ff0000>★ <深入浅出 MFC> 二版七刷 ★
出版日期:1999/04</FONT></STRONG></P>
<P align=left>本刷内容与 6 刷完全相同。</P>
<P align=left><STRONG><FONT color=#ff0000>★ <深入浅出 MFC> 二版八刷 ★
出版日期:1999/0<FONT face=Arial>7</FONT></FONT></STRONG></P>
<P align=left>本刷内容与 6 刷完全相同。</P>
<P align=left><STRONG><FONT color=#ff0000>★ <深入浅出 MFC> 二版九刷 ★
出版日期:1999/10</FONT></STRONG></P>
<P align=left>本刷内容与 6 刷完全相同。</P>
<P align=left><STRONG><FONT color=#ff0000>★ <深入浅出 MFC> 二版十刷 ★
出版日期:2001/01</FONT></STRONG></P>
<P align=left>本刷内容与 6 刷完全相同。</P>
<P align=left><STRONG><FONT color=#ff0000>★ <深入浅出 MFC> 二版十一刷 ★
出版日期:2001/03</FONT></STRONG></P>
<P align=left>本刷内容与 6 刷完全相同。</P>
<P align=left>请注意,因松岗出版公司在本书第十刷、十一刷出版过程中发生误失,<BR>漏植一张 <A
href="http://jjhou.csdn.net/u002p-gb-mfc-hierarchy.jpg" target=main><FONT
color=#0000ff>MFC 全图</FONT></A><FONT
color=#000000>。请在这里自行下载列印,我对各位感到非常抱歉。</FONT></P>
<P align=left></P>
<P align=left><STRONG><FONT color=#ff0000>★
以下暂请读者自行更正</FONT></STRONG>:<BR></P>
<P align=left>页次:p568 #0027<BR>原文: // chche<BR>更正: // c<STRONG><FONT
color=#0000ff>a</FONT></STRONG>che </P>
<P align=left>页次:p500 L-5<BR>原文:CFileException::fileNot<STRONG><FONT
color=#0000ff>e</FONT></STRONG>Found<BR>更正:CFileException::fileNotFound<BR>感谢:Franklin<BR>日期:2000/08/17<BR><BR>页次:p500
L-3<BR>原文:CFileException::tooManyOpeFiles<BR>更正:CFileException::tooManyOpe<STRONG><FONT
color=#0000ff>n</FONT></STRONG>Files<BR>感谢:Franklin<BR>日期:2000/08/17<BR><BR>页次:p501
L10<BR>原文:delete [] pByffer;<BR>更正:delete [] pB<STRONG><FONT
color=#0000ff>u</FONT></STRONG>ffer;<BR>感谢:Franklin<BR>日期:2000/08/17<BR><BR>页次:p501
L14<BR>原文:Framework 呼叫 CSribbleDoc::Serialize,用以对付文件。<BR>更正:Framework 呼叫
CS<STRONG><FONT
color=#0000ff>c</FONT></STRONG>ribbleDoc::Serialize,用以对付文件。<BR>感谢:Franklin<BR>日期:2000/08/17<BR><BR>页次:p117
L2<BR>原文:<SMALL><FONT face="Courier New">CreateEx(); // CreateEx
</FONT>是虚拟函式,但 <FONT face="Courier New">CFrameWnd
</FONT>未改写之,所以引发<BR><FONT
face="Courier New">
// CWnd::CreateEx</FONT></SMALL><BR>更正:<FONT color=#0000ff><SMALL><FONT
face="Courier New">CreateEx(); // CreateEx </FONT>不是虚拟函式,它系继承自 <FONT
face="Courier New">CWnd</FONT>,而 <FONT
face="Courier New">CFrameWnd</FONT></SMALL>
<SMALL>之中</SMALL><BR><SMALL><FONT
face="Courier New">
// </FONT>又不曾重新定义它,所以唤起的是 <FONT
face="Courier New">CWnd::CreateEx</FONT>。</SMALL></FONT><BR>感谢:Tank
(expando)<BR>日期:2000/08/18<BR><BR><BR>页次:第一版序(p10),
L3<BR>原文:昨日黄花<BR>更正:<FONT
color=#0000ff>明</FONT>日黄花<BR>感谢:佚失(非常抱歉)<BR>日期:2001/04/08</P>
<P align=left>页次:p371, L-2<BR>原文:昨日黄花<BR>更正:<FONT
color=#0000ff>明</FONT>日黄花<BR>感谢:lao_o<BR>日期:2001/04/20</P>
<P align=left>页次:p403, L-8<BR>原文:CThread::OnIdle<BR>更正:C<FONT
color=#0000ff>Win</FONT>Thread::OnIdle<BR>感谢:PanNongfei<BR>日期:2001/07/08</P>
<P align=left>页次:p128, L4<BR>原文:{ szCObject, sizeof(CObject), 0xffff,
NULL, NULL };<BR>更正:{ szCObject, sizeof(CObject), 0xffff, NULL, NULL<FONT
color=#0000ff>, NULL</FONT> };<BR>感谢:Tony<BR>日期:2001/07/14</P>
<P align=left>页次:p136, MFC.CPP, #0007<BR>原文:{ szCObject, sizeof(CObject),
0xffff, NULL, NULL };<BR>更正:{ szCObject, sizeof(CObject), 0xffff, NULL,
NULL<FONT color=#0000ff>, NULL</FONT> };<BR>感谢:Tony<BR>日期:2001/07/14</P>
<P align=left>页次:p565, 图右下角<BR>原文:CWL_WNDPROC<BR>更正:<STRONG><FONT
color=#0000ff>G</FONT></STRONG>WL_WNDPROC<BR>感谢:jjhou<BR>日期:2001/07/20</P>
<P align=left>页次:p510, 上图阴影方框第四行<BR>原文:Scribble Docment<BR>更正:Scribble
Doc<FONT
color=#0000ff><STRONG>u</STRONG></FONT>ment<BR>感谢:jjhou<BR>日期:2001/07/20</P>
<P align=left>P455, L1: "完全由AppW<FONT
color=#ff0000>zi</FONT>ard"应为"完全由AppWizard";<BR>P482, L3:<FONT
color=#0000ff>RemoveHead: 把串列的最前端元素拿掉,并回传一个指标指向它</FONT>。<BR>P483:
L13:"■DeleteContent" 应为 "■DeleteContent<STRONG><FONT
color=#0000ff>s</FONT></STRONG>";<BR>P486:图8-4左上方框内 "DeleteContent" 应是
"DeleteContent<STRONG><FONT color=#0000ff>s</FONT></STRONG>";<BR>P500 L1,
L3, L20 将mydoc<FONT color=#ff0000>.doc</FONT>换成mytxt<FONT
color=#0000ff>.txt</FONT>。<BR>感谢:pannongfei<BR>日期:2001/07/27</P>
<P align=left>页次:p462, 方框以下第一段<BR>原文:<BR><FONT face=细明体
size=3>当使用者选按【</FONT><FONT size=3>File/New<FONT face=细明体>】命令项,根据</FONT>
AppWizard <FONT face=细明体>为我们所做的</FONT> Message Map<FONT
face=细明体>,此一命令由</FONT> <I>CWinApp</I>::<I>OnFileNew</I> <FONT
face=细明体>接手处理。後者呼叫</FONT> <I>CDocManager</I>::<I>OnFileNew</I><FONT
face=细明体>,</FONT></FONT><FONT face=细明体 color=#ff0000
size=3>後者再呼叫</FONT><FONT color=#ff0000 size=3>
<I>CWinApp</I>::<I>OpenDocumentFile</I></FONT><FONT face=细明体 color=#ff0000
size=3>,</FONT><FONT size=3><FONT face=细明体>後者再呼叫</FONT>
<I>CDocManager</I>::<I>OpenDocumentFile</I><FONT face=细明体>,後者再呼叫</FONT>
<I>CMultiDocTemplate</I>::<I>OpenDocumentFile</I><FONT
face=细明体>(这是观察</FONT>MFC<FONT
face=细明体>原始码所得结果):</FONT></FONT><BR>更正:删除以上<FONT
color=#ff0000>红色</FONT>部份。<BR>感谢:唐伟清<BR>日期:2001/09/05<BR><STRONG>注</STRONG>(2002/06/01):此一修正仍不完全,後面另有修正。</P>
<P align=left>页次:p712, 第一行<BR>原文:m_wndSplitter2.CreateView(1, 0,
RUNTIME_CLASS(<FONT
color=#ff0000>CCurveView</FONT>),<BR>更正:m_wndSplitter2.CreateView(1, 0,
RUNTIME_CLASS(<FONT
color=#0000ff>CGraphView</FONT>),<BR>说明:光碟中的程式是正确的。以上错误是因程式发展过程中更改命名而未对应修正。<BR>感谢:jjhou<BR>日期:2001/09/15</P>
<P align=left>第一版序 P7, L4:"<FONT color=#ff0000>彷</FONT>佛" 改为 "<FONT
color=#0000ff>仿</FONT>佛"。<BR>p252,L-5:"手形按<FONT color=#ff0000>纽</FONT>" 改为
"手形按<FONT color=#0000ff>钮</FONT>"<BR>p847,L10:"心烦气<FONT
color=#ff0000>燥</FONT>" 改为 "心烦气<FONT
color=#0000ff>躁</FONT>"<BR>p868,L2:"翻两<FONT color=#ff0000>翻</FONT>" 改为
"翻两<FONT
color=#0000ff>番</FONT>"<BR>感谢:yeka<BR>日期:2001/11/24<BR><BR>页次:p727,
第12行<BR>原文:<FONT face=新细明体>绝不是要去改</FONT> MFC <FONT
face=新细明体>原始码,而是要</FONT><FONT face=新细明体 color=#ff0000>改写虚拟函式</FONT><FONT
color=#ff0000> <I>OnWindowNew</I></FONT><FONT face=新细明体
color=#ff0000>,使</FONT><FONT face=新细明体>为我们所用。</FONT><BR>更正:<FONT
face=新细明体>绝不是要去改</FONT> MFC <FONT face=新细明体>原始码,而是要</FONT><FONT face=新细明体
color=#0000ff>另写一个类似</FONT><FONT
color=#0000ff><I>OnWindowNew</I></FONT><FONT face=新细明体
color=#0000ff>的函式</FONT><FONT face=新细明体>为我们所用。</FONT><BR>说明:<FONT
color=#000000><I>OnWindowNew</I></FONT><FONT face=新细明体
color=#000000>并非虚拟函式。</FONT><BR>感谢:jjhou<BR>日期:2001/11/30</P>
<P align=left><FONT color=#000000>页次:P388, #0019<BR>原文:</FONT><FONT
face=Fixedsys>className = <FONT
color=#ff0000>TRACEWND</FONT>_CLASSNAME;</FONT><FONT
color=#000000><BR>更正:</FONT><FONT face=Fixedsys>className = <FONT
color=#0000ff>MY</FONT>_CLASSNAME;</FONT><BR><FONT
color=#000000>感谢:Chengdan Zheng<BR>日期:2002/02/01</FONT></P>
<P align=left><FONT color=#000000>页次:P70, L-2<BR>原文:</FONT><FONT
face=Fixedsys>它传回 CEm<FONT color=#ff0000>P</FONT>loyee*</FONT><FONT
color=#000000><BR>更正:</FONT><FONT face=Fixedsys>它传回 CEm<FONT
color=#0000ff>p</FONT>loyee*</FONT><BR><FONT
color=#000000>感谢:Hades<BR>日期:2002/02/15</FONT></P>
<P align=left><FONT color=#000000>页次:P405, 第二段程式码(灰底)<BR>说明:</FONT><FONT
face=Fixedsys>函式 CMyFrameWnd::IdleTimeHandler() 内只有 new
的动作,<BR> 缺少 delete动作,造成</FONT> memory
leak<FONT face=Fixedsys>。</FONT><FONT color=#000000><BR>更正:</FONT><FONT
face=Fixedsys>在函式结束前加上 <FONT color=#0000ff>delete pDC;</FONT> <BR><FONT
color=#0000ff>备注:纸本不打算更改,以免与书附光碟不一致,反生误会。请读者注意。</FONT></FONT><BR><FONT
color=#000000>感谢:</FONT>duqiang<BR><FONT
color=#000000>日期:2002/02/20</FONT></P>
<P align=left><FONT color=#000000>页次:P429, 程式码说明 (7)<BR>原文:new 一个
<EM>CMyMDIFrameWnd</EM> 物件,做为主视窗物件<BR>更正:new 一个
<EM>CMainFrame</EM>(<EM>CMDIFrameWnd</EM>-derived)物件,做为主视窗物件</FONT><BR><FONT
color=#000000>感谢:佚失,很抱歉</FONT><BR><FONT
color=#000000>日期:2002/03/12</FONT></P>
<P align=left>页次:p155, MFC.CPP, #0007<BR>原文:{ szCObject, sizeof(CObject),
0xffff, NULL, NULL };<BR>更正:{ szCObject, sizeof(CObject), 0xffff, NULL,
NULL<FONT color=#0000ff>, NULL</FONT>
};<BR>感谢:shinexr<BR>日期:2002/05/31</P>
<P align=left>页次:p462, 方框以下第一段<BR>原文:<BR><FONT face=细明体
size=3>当使用者选按【</FONT><FONT size=3>File/New<FONT face=细明体>】命令项,根据</FONT>
AppWizard <FONT face=细明体>为我们所做的</FONT> Message Map<FONT
face=细明体>,此一命令由</FONT> <I>CWinApp</I>::<I>OnFileNew</I> <FONT
face=细明体>接手处理。後者呼叫</FONT> <I>CDocManager</I>::<I>OnFileNew</I><FONT
face=细明体>,</FONT></FONT><FONT face=细明体 color=#ff0000
size=3>後者再呼叫</FONT><FONT color=#ff0000 size=3>
<I>CWinApp</I>::<I>OpenDocumentFile</I></FONT><FONT face=细明体 color=#ff0000
size=3>,後者再呼叫</FONT><FONT color=#ff0000 size=3>
<I>CDocManager</I>::<I>OpenDocumentFile</I></FONT><FONT face=细明体
color=#ff0000 size=3>,</FONT><FONT size=3><FONT face=细明体>後者再呼叫</FONT>
<I>CMultiDocTemplate</I>::<I>OpenDocumentFile</I><FONT
face=细明体>(这是观察</FONT>MFC<FONT
face=细明体>原始码所得结果):</FONT></FONT><BR>更正:删除以上<FONT
color=#ff0000>红色</FONT>部份。<BR>感谢:唐伟清, 郑榕<BR>日期:2002/06/01</P>
<P align=left>-- the end</P>
<P align=left><!--mstheme--></FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV>
<P></P><!--mstheme--></FONT></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -