第二书店&China-pub战略联盟提供专业服务

Visual C++编程深入引导 (2009 年度畅销榜NO.8065 )

会员评价: 评级:(共 5 条) 参与评论
原书名: Visual C++编程深入引导
原出版社:
作者: 伍红兵
出版社: 中国水利水电出版社
书号: 7508410076 出版日期:2002年3月 开本: 787*1092 1/16 页码: 719 版次: 2002年3月第一版北京第一次印刷 点击: 2230
所属类别: 程序设计Visual C++
市场价: ¥68.00     会员价:¥61.20
本书全面地介绍了精通Visual C++程序设计所应当了解的知识——以C++最新国际标准为蓝本,通过对C++语法机制汇编级的分析,深入介绍了C++ 的对象模型和语法机制的实现细节。\r\n

用户评论

58.242.33.3 说:
你对汇编了解的估计不够,其实作者给的代码是正确的,注意点调试版本和发行版本的汇编代码不一样的,有一定的区别。你用的就是调试版本汇编出来的代码,
发布于2006-12-23 10:28:54
(0)回应 有1人认为此评论有用, 有0人认为没用, 您认为呢?
x_y321 说:
感觉挺不错,而且是国内的人写的,比某些翻译书好N倍。
发布于2004-6-25 14:16:17
(0)回应 有1人认为此评论有用, 有0人认为没用, 您认为呢?
liuhaiyi 说:
d
发布于2004-5-18 14:31:14
(0)回应 有0人认为此评论有用, 有0人认为没用, 您认为呢?
这本书刚刚买的,读了前几章。感觉思路很好,比如通过汇编代码来分析C++的特性。然而,细节的地方不够认真!!!
例如:p25-p31的一个汇编例子包含如下瑕疵。
1.书中所附汇编代码与实际用VC6.0生成的并不一致。假设是略去了与功能无关的内容,那么又处理得不彻底,程序无法正确理解,更不能正常运行。正确汇编代码附于下:
TITLE mfc12.cpp
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS ENDS
$$TYPES SEGMENT BYTE USE32 'DEBTYP'
$$TYPES ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; COMDAT ?add@@YAHHH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _main
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC ?add@@YAHHH@Z ; add
; COMDAT ?add@@YAHHH@Z
_TEXT SEGMENT
_i$ = 8
_j$ = 12
_z$ = -4
?add@@YAHHH@Z PROC NEAR ; add, COMDAT

; 4 : {

push ebp
mov ebp, esp
sub esp, 68 ; 00000044H
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-68]
mov ecx, 17 ; 00000011H
mov eax, -858993460 ; ccccccccH
rep stosd

; 5 : int z=i+j;

mov eax, DWORD PTR _i$[ebp]
add eax, DWORD PTR _j$[ebp]
mov DWORD PTR _z$[ebp], eax

; 6 : return z;

mov eax, DWORD PTR _z$[ebp]

; 7 : }

pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0
?add@@YAHHH@Z ENDP ; add
_TEXT ENDS
PUBLIC _main
EXTRN __chkesp:NEAR
; COMDAT _main
_TEXT SEGMENT
_a$ = -4
_b$ = -8
_c$ = -12
_main PROC NEAR ; COMDAT

; 10 : {

push ebp
mov ebp, esp
sub esp, 76 ; 0000004cH
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-76]
mov ecx, 19 ; 00000013H
mov eax, -858993460 ; ccccccccH
rep stosd

; 11 : int a=100;

mov DWORD PTR _a$[ebp], 100 ; 00000064H

; 12 : int b=30;

mov DWORD PTR _b$[ebp], 30 ; 0000001eH

; 13 : int c=add(a,b);

mov eax, DWORD PTR _b$[ebp]
push eax
mov ecx, DWORD PTR _a$[ebp]
push ecx
call ?add@@YAHHH@Z ; add
add esp, 8
mov DWORD PTR _c$[ebp], eax

; 14 : return 0;

xor eax, eax

; 15 : }

pop edi
pop esi
pop ebx
add esp, 76 ; 0000004cH
cmp ebp, esp
call __chkesp
mov esp, ebp
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END
2.关于函数调用时堆栈的处理和平衡,表述不清,图示不明,难于理解。鉴于这是一个放在前面作为引导的重要例子,实在应该讲透了。这样,后边的以大堆例子才好给人家理解。
建议作者:
1.写书最好还是假于己手,包括代码实例。如果让学生或助手代劳,需仔细指导,严格把关,定稿前甄别出潜藏的错误。
2.关于汇编例子的错误,不止出现在这一个例子之中。建议按正确生成的代码重写,并在适当的媒介上,向读者公布。
发布于2004-5-17 13:24:40
(0)回应 有1人认为此评论有用, 有0人认为没用, 您认为呢?
forme 说:
侧重理论,角度新颖,适合初,中级VC++编程人员
发布于2004-5-5 12:20:17
(0)回应 有0人认为此评论有用, 有0人认为没用, 您认为呢?
>>发表评论      >>查看更多评论  

商品意见

>>我要提问  
同类热销商品
您的浏览历史
第二书店联系方式 010-64348411 webmaster@dearbook.com
购买向导 如何付款 如何配送 订单信息 售后服务
购买流程 货到付款 送货方式、时间及费用 订单状态处理 退换货原则
搜索商品 邮局汇款 如何修改订单 退换货方法
银行电汇 查询订单方法 相关问题说明
网上支付
其他支付方式
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved .