Windows程序设计翻译太烂

本文指出并纠正了《windows程序设计》(第五版)中的多处翻译错误,涉及分辨率计算、宽字符编码概念、函数使用等多个方面,有助于读者准确理解原文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是《windows程序设计》(第五版)122页的一节.读了之后,百思不得其解,甚使郁闷!设置都不变,居然得出了两种分辨效率:1.每英寸大概就为13像素;2.每英寸就为16像素?还有:10磅字既是10/72英寸,如果乘以96点,每英寸大概就为13像素.这又是什么逻辑啊?

今天,又思考了一番,肯定是翻译错了。然后突然,觉得移动两个逗号后,一切都那么合情合理!以前总以为自己对dpi和ppi不是很了解,所以查的都是介绍两者以及两者方面的资料,今天查了windows程序设计的翻译错误,一切果然一目了然了。除了骂下本书的翻译者,也只能怪自己的英语太烂。
先看看语文的描述:
That's the small font, which is based on a display resolution of 96 dots per inch. I said it's a 10-point font. Ten points is 10/72 inch, which if you multiply by 96 dots per inch yields a result of (approximately) 13 pixels. That's tmHeight minus tmInternalLeading. The line spacing is 12 points, or 12/72 inch, which multiplied by 96 dots per inch yields 16 pixels. That's tmHeight.
Ten points is 10/72 inch, which if you multiply by 96 dots per inch yields a result of (approximately) 13 pixels.其实,翻译的错误在于一个符号:10磅字既是10/72英寸,如果乘以96点每英寸,大概就为13像素.注意,我将那个逗号放到了每英寸的后面!也许一切错误的原因,都是这个小小的逗号.

网上高手发现的:

1.(23页第13行):“宽字符不需要Unicode。Unicode是一种可能的宽字符编码。”这是什么意思?查查原文,原来是:Wide characters aren't necessarrily Unicode. Unicode is one possible wide-character encoding.意思是说:“宽字符并不等同于Unicode。 Unicode只是一种可行的宽字符编码(方案)。”

2.(35页第13行):“你必须用sizeof(TCHAR)将其分开。”其实看书的人看到此处,应该知道这里不应该是什么“分开”,而应该是“除” 查查原文,果不其然:You must divide it by sizeof (TCHAR). 译者是不是已经无知到了只知道divide一词的“分开”这个义项?

3.(65页第7行):“……只不过必须认为其大小是某一特定尺寸,或者在程序运行时其大小保持不变。”这似乎有悖常识。对比一下原文( 括号中的部分为之前的句子):( You can do almost anything you want with your program's client area ) —anything, that is, except assume that it will be a particular size or that the size will remain constant while your program is running.while your program is running.显然,从anything一词开始的部分应译:“只是不能认定其大小为一特定尺寸或在程序运 行期间保持不变。”原译的意思正好反过来了。

4.(76页第4行):“它是字体设计者建议加在横向字符之间的空间大小。”这有点不对头,tmExternalLeading明明是一个纵向的长度,怎么 会说“横向字符之间”?看看原文:This is an amount of space that the designer of the font suggests be added between successive rows of displayed text.知道了吧:译书的人把successive rows(意为“相邻行”)译成了“横向字符”,何等荒谬

5.(100页第1行):“当通过GetScrollInfo函数使用SIF_RANGE标志时,应把nMin和nMax字段设置为从函数返回的当前范围。”这明显不对了 原文是:When you use the SIF_RANGE flag with the GetScrollInfo function, the nMin and nMax fields will be set to the current range on return from the function.应译:“调用GetScrollInfo函数时如果指定了SIF_RANGE标志,则函数返回时将nMin 和nMax字段设为当前范围值。”

6.(100页第11行):“在SetScrollInfo函数中仅使用SIF_DISABLENOSCROLL标志。如果指定了此标志,并且新的滚动条参数使滚动条不可见 则禁用该滚动条。”这一段有点莫明其妙。看看原文:You use the SIF_DISABLENOSCROLL flag only with the SetScrollInfo function. If this flag is specified and the new scroll bar arguments would normally render the scroll bar invisible, this scroll renders the scroll bar disabled instead. (I'll explain this more shortly.) 这话应译:SIF_DISABLENOSCROLL 标志只与SetScrollInfo函数配合使用。(在调用此函数时)如果提供了在通常情况下会导致滚动条不可见的新的滚动条参数,而且 指定了这一标志,则此时滚动条只是被禁用而不是被隐藏。”(这句话的翻译稍有难度,为更通顺起见,我的译文在次序上做了一点 调整)

7.(100页倒数第2行):“新滚动条函数的一个好的功能是当使用与滚动条范围一样大的页面时,……”什么叫“使用与滚动条范围一样大的 页面”?看看原文:One nice feature of the new scroll bar functions is that when you use a scroll bar page size。其中 use a scroll bar page size应该译成“使用滚动条页面尺寸”,而不是“使用与滚动条范围一样大的页面”。

8.(107页倒数第5行):“而在较慢的机器上,则可以考虑对GetSystemMetrics使用SB_SLOWMACHINE参数作为替换的处理过程。”我发觉自己 好象不懂汉语了。:-)还是看原文吧:But try your code out on a slow machine, and perhaps think about using the SB_SLOWMACHINE argument to GetSystemMetrics for alternative processing for slow machines. 这应该译作:“但是,你应该 在较慢的机器上测试自己的代码,此外,也可以考虑使用SB_SLOWMACHINE 参数调用tSystemMetrics函数,以便为较慢的机器提供别 的处理过程。”

9.(120页倒数第2行):“这些看起来更像直接的定义。”这好象没什么问题,但对比一下原文:These seem like straightforward definitions until one begins to think through their implications. 这句话被译书的砍掉了后半截,完整的意思应该是:“这 看起来象是直接的定义,但只要思考一下其中的含义就会发现事实并非如此。”

10.(122页第14行):“10磅即是10/72英寸,如果乘以96点,每英寸大概就为13像素。”这肯定不对。来看原文:Ten points is 10/72 inch, which if you multiply by 96 dots per inch yields a result of (approximately) 13 pixels.这下明白问题之所在了吧 ?dots per inch是分辨率的单位,应该译成“点每英寸”或“点/英寸”(就象速度的单位是“米每秒”或“米/秒”一样)。知道 了这一点,此句其实很简单:“10磅即是10/72英寸,乘以96点每英寸,那就大约是13个像素。”后面第18行也有类似问题。其中的 “乘以120点,每英寸等于”应改成“乘以120点每英寸,等于”。

11.(122页第19行):“像第四章一样,再次强调所显示的是实际的度量大小,因此您可以理解它工作的方式。不要在您的程序中对此编写代 码。”什么叫“对此编写代码”?看一下原文:As in Chapter 4, let me emphasize again that I'm showing you actual metrics so that you can understand how this works. Do not code these numbers in your programs。这并不难译:“就象在 第4章中做的那样,我要再次强调,在此展示这些实际尺寸只是为了让你理解其工作机制。在你的程序中不要直接使用这些数字。”

12.(125页倒数第9行):“注意最重要的位是标为0的8位,”我怎么也搞不懂:这8个0为什么会是“最重要的”。来看原文:Notice that the most-significant 8 bits are zero。most-significant在这里意思是“最高的”而不是什么“最重要的”!

13.(128页第17行):“大多数程序员以不同的方式使用SaveDC和RestoreDC。然而,更像汇编语言中的PUSH和POP指令,当您调用SaveDC时, 不需要保存返回值。”大多数程序员的方式是什么?来看原文:Most programmers use SaveDC and RestoreDC in a different manner, however, much like PUSH and POP instructions in assembly language. When you call SaveDC, you don't need to save the return value。这应该译成:“但是,大多数程序员以另一种方式使用SaveDC和RestoreDC,就如同在汇编语言中使用PUSH 和POP指令一样。当调用SaveDC时,你并不需要保存返回值。”

14.(153页倒数第2行):“您可以设想从一个无穷大的封闭区域内部的点画线,”真是这样吗?让原文来回答:you can imagine a line drawn from a point in an enclosed area to infinity。这应该译成:“你可以设想从封闭区域中的一个点作一直线延伸到无穷远 处”。译书的人那种译法真的是有点搞笑了。154页第4行那句“您仍旧可以……”也有同样的问题。毕竟,同一只猪放的只能是同样 的臭屁!:-)

15.(163页第3行):“更像客户区坐标。”单看这句倒没什么问题,但与与前面的内容结合,就大有疑问。对比一下原文吧:most likely client-area coordinates.老天,译手们竟然把likely译成“象”!!!我都有点不好意思把这样简单的句子写出来了:“多半是客 户区坐标。”

16,Windows将xViewExt设置为某个像素数而将xWinExt设置为xViewExt像素占据的一英寸内有几百像素的长度。”什么叫“xViewExt像素占据 的一英寸内有几百像素的长度”?来看原文:Windows sets xViewExt to be a certain number of pixels and xWinExt to be the length in hundredths of an inch occupied by xViewExt pixels。这个句子稍有难度,但即便
英文水平粗疏如我之人也应该能给出正确的译文:“Windows将xViewExt设置为某一像素数,并将xWinExt设置为以百分之一英寸为单 位的、xViewExt个像素所占据的长度。”后面一句“比值给出了一英寸内有几百个像素的数值”一句也是同样的问题,应改成“比值 给出了百分之一的长度内包含的像素数”。

17.(193页第1行):“在一些交叠的操作中通常相互补充使用。”什么叫“交叠的操作”?看看原文:often complementing each other with some overlap。这很简单,应该译成:“它们的功能常常互为补充,也有一些重叠。”

18.(199页倒数第1行):“在面向工作组的Windows中”熟悉Windows的人一看就知道这是个什么问题:原文中此处是Windows forWorkgroups 那是微软Windows系列产品中的一种,译手们把这个产品名直接译出来虽然意思没错,但却会让不明就里的人一头雾水。对于产品名 ,一般是不译的,直接使用就行了。就象Office中的PowerPoint一样,你如果硬要把它译出来,那就是“电源插座”(我实在不知道 微软怎么会给自己的产品取这么一个名字:-))。你如果想知道某人的电脑有没有装PowerPoint,你要是问他:“你的电脑有没有‘ 电源插座’”,他肯定会象看一个怪物似的盯着你,回答说:“当然有。不但电脑上有,墙上还有几个!”呵呵!

19.(213页第9行):“这些字符消息是我们将文本传递给窗口过程时遇到的第一个消息。它们不是唯一的消息。”有点看不懂?来看原文: These character messages are the first messages we've encountered that deliver text to the window procedure. They're not the only ones。这显然应该译:“这些消息是我们遇到的第一批向窗口过程传递文本的消息。它们不是唯一具有这一功能的消 息。”

20.(213页第11行):“任何窗口过程都与您用RegisterClassA(RegisterClass的ANSI版)注册的窗口类相联系,从而获得含有ANSI字符代 码的消息。”岂有此理!那RegisterClassW呢?干什么用?来看原文:Any window procedure associated with a window class that you register with RegisterClassA (the ANSI version of RegisterClass) gets messages that contain ANSI character codes。初中生都不应该看不懂这句话!其意思应该是:“与你用RegisterClassA(RegisterClass函数的ANSI版本)注册的窗口类相 关的任何窗口都会接收到含ANSI字符代码的消息。”

21.(P681页的最下方),书上写的RowLength = ((bmch.bcWidth * bmch.bcBitCount + 31) & 31) 〉〉 3;我看不明白,&31的话不是截留低 5位吗,显然应该是RowLength = ((bmch.bcWidth * bmch.bcBitCount + 31) & ~ 31) 〉〉 3; 这样才等价于“/32”啊。


错误远不止这么多,不想说了,结合英文版来看吧!

 
该版本提供了下册详细目录可以快速查阅(当然已经提供详细书签) 基本信息 原书名: Programming Windows (Fifth Edition) 原出版社: Microsoft Press 作者: (美)Charles Petzold 译者: 北京博彦科技发展有限责任公司 丛书名: Microsoft 程序设计系列 出版社:北京大学出版社 ISBN:730104187X 上架时间:2004-11-16 出版日期:2004 年9月 页码:1376 版次:1-8 内容简介    如果对Windows开发有什么问题的话,请翻阅PetZold的著作吧。在《Window程序设计》(第5版)中,这位杰出的“Windows先锋奖”(Windows Pioneer Award)获得者根据最新的Windows操作系统权威技术修订了他的经典著作——再一次演示了基本的Win32程序设计的API核心内容。本书的内容包括:    ** 基本内容——输入、输出和对话框    ** Unicode概述    ** 图形——绘图、文本和字体、位图和元文件    ** 内核和打印机    ** 声音和音乐    ** 动态链接库    ** 多任务和多线程    ** 多文档界面    ** Internet和 Intranet的程序设计    其中采用的大多是具有代表性的示例,这本Petzold著作为使用 Windows 95、Windows 98或 Windows NT的各级windows程序员提供了最基本的参考和指导。没有经验的开发人员也可以从中获取大量的新知识。       作译者 本书提供作译者介绍    Charles Petzold从 1984年开始编写个人计算机程序,从 1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于 Windows程序设计的杂志论文。从 1986年到 1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。 《Windows 程序设计》由微软出版社在1988年首次出版,后来被认为是这方面最好的导论性读本。在1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《WindowcMagazine》和Microsoft公司授予Windows Pioneer奖, 以表彰他对 Microsoft Windows的成功做出的贡献. 在1999年秋天,微软出版社将出版Charles Petzold面向普通读者的第一本书. 暂时命名为 《Code:The Hidden Language of Computer Hardware and Software》, 这本书专门介绍数字信息的本质以及计算机处理数字信息的方式. 作者: Charles Petzold 1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Window Magazine》和Microsoft公司授予Windows Pioneer奖,以表彰他对 Microsoft Windows的成功做出的贡献。 Charles Petzold从1984年开始编写个人计算机程序,从1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于Windows程序设计的杂志论文。从1986年到1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。 [同作者作品] Microsoft c#Windows程序设计(上下册) Microsoft Windows程序设计——Visual Basic.NET语言描述 Windows 3D编程(英文影印版) 目录 第一部分 基础知识 第一章 开始 l.1 windows环境 1.1.1 windows 简史 1.1.2 windows方面 1.1.3 动态链接 1.2 windows编程选项 1.2. 1 api和内存模式 1.2.2 语言选项 l.2. 3 编程环境 1.2.4 api文档 1.3 编写一个windows程序 1.3.1 字符模式(character-mode)模型 1.3.2 windows 等价程序 1.3.3 头文件 1.3.4 程序入口点 1.3.5 messagebox 函数 1.3.6 编译、链接和运行 第二章 unicode简介 2.1 字符集简史 . 2.1.1 美国标准 2.1.2 国际方面 2.1.3 扩展ascll 2.1.4 双字书字符集 2.1.5 unicode解决方案 2.2 宽字符和c 2.2.1 char数据类型 2. 2. 2 宽字符 2.2.3 宽字符库函数 2.2.4 维护单一源代码 2.3 宽字符和windows 2.3.1 windows 头文件类型 2.3.z windows 函数调用 2.3.3 windows的字符串函数 2.3.4 在 windows中使用 printf 2.3.5 格式化消息框 2.3.6 本书与国际化 第三章 窗口和消息 3.1 自己的窗口 3. 1.l 总体结构 3.1.2 hellowin程序 3. 1.3 总体考虑 3.1.4 注册商口类 3.1.5 创建窗口 3.1.6 显示窗口 3.1.7 消息循环 3.1.8 窗口过程 3.1.9 处理消息 3.1.10 播放声音文件 3.1.11 wm_paint消息 3.1.12 wm_destroy消息 3.2 windows编程的难点 3.2.l 别调用我,我会调用您 3.2.2 进队消息与进队消息 3.2. 3 行动迅速 第四章 输出文本 4.l 绘制和刷新 4.1.1 wm_paint消息 4. 1.2 有效短形和无效矩形 4.2 gdi简介 4.2.l 设备描述表 4.2.2 获取设备描述表句柄:方法一 4.2.3 绘图信息结构 4.2.4 获取设备描述表句柄:方法二 4. 2. 5 textout:细节 4.2.6 系统字体 4.2.7 字符大小 4.2. 8 文本尺寸:细节 4.2.9 格式化文本 4. 2.10 综合使用 4.2.11 sysments1.c窗口过程 4.2.12 空间够 4. 2.13 客户区的大小 4.3 滚动条 4.3.l 滚动条的范围和位置 4.3.2 滚动条消息 4.3.3 在sysmets中添加滚动功能 4.3.4 绘图程序的组 4.4 建立更好的滚动 4.4.l 滚动条信息函数 4.4.2 滚动范围 4.4.3 新sysmets 4.4. 4 用鼠标怎么办 第五章 图形基础 5. 1 gdi的结构 5.1. 1 gdi原理 5.1.2 gdi函数调用 5.1.3 gdi日元 5. 1. 4 其他方面 5.2 设备描述表 5.2.l 获取设备描述表句柄 5.2.2 获取设备描述表信息 5.2.3 devcaps1程序 5.2.4 设备的大小 5.2.5 关于色彩 5.2.6 设备描述表属性 5.2.7 保存设备描述表 5.3 画点和线 5.3.l 写像素 5.3.2 直线 5.3.3 边界框函数 5. 3.4 贝塞尔样条 5.3.5 使用现有画笔(stock pens) 5.3.6 画笔的创建、选择和删除 5.3.7 填充空隙 5.3.8 绘图方式 5.4 绘制填充区域 5.4.1 polygon函数和多边形填充方式 5.4.2 用画刷填充内部 5.5 gdi映射方式 5.5.l 设备坐标和逻辑坐标 5.5.2 设备坐标系 5.5.3 机口和窗口 5.5.4 处理mm_text 5.5. 5 “度量”映射方式 5.5.6 “自作主张的”映射方式 5.5.7 whatsize 程序 5.6 短形、区域和剪裁 5.6.1 矩形函数 5.6.2 随机短形 5.6.3 创建和绘制区域 5. 6.4 短形与区域的剪裁 5.6.5 clover程序 第六章 键盘 6.1 键盘基础 6.1.1 忽略键盘 6.1.2 谁获得了焦点 6.1.3 队列和同步 6.1.4 击键和字符 6. 2 击键消息 6.2.1 系统击键与非系统击键 6.2.2 虚拟键码 6.2.3 iparam信息 6.2.4 换档状态 6.2.5 使用击健消息 6.2.6 为键盘增强sysmets 6.3 字符消息 6.3.1 四类字符消息 6.3.2 消息顺序 6.3.3 处理控制字符 6.3.4 死字符消息 6.4 键盘消息和字符集 6.4.1 keyviewi程序 6.4.2 外语键盘问题 6.4.3 字符集和字体 6.4.4 unicode怎么样? 6.4.5 truetype和大字体 6.5 插入符(是光标) 6.5.l 插入符函数 6.5.2 typer 程序 第七章 鼠标 7.1 鼠标基础 7.1.1 一些简单的定义 7.2 客户区鼠标消息 7.2.l 简单的鼠标处理:一个例子 7.2.2 处理sha键 7.2.3 双击鼠标键 7.3 非客户区鼠标消息 7.3.1 命中测试消息 7.3.2 从消息产生消息 7.4 程序中的命中测试 7. 4. 1 一个假想的例子 7.4.2 示例程序 7.4.3 使用键盘仿真鼠标 7.4. 4 在checker中添加键盘接口 7.4. 5 将于窗口用于命中测试 7.4.6 checker中的子窗口 7.4.7 子窗口和键盘 7.5 捕获鼠标 7.5.1 设计矩形 7.5.2 捕获的解决方案 7.5.3 blokout2程序 7.6 鼠标轮 7.6.1 后会有期 第八章 计时器 8.1 计时器基础 8.1.1 系统和计时器 8.1.2 计时器消息是异步的 8.2 计时器的使用:三种方法 8.2.1 方法一 8.2.2 方法二 8.2.3 方法三 8.3 计时器用于时钟 8.3.1 构造数字时钟 8.3.2 获取当前时间 8.3.3 显示数字和冒号 8.3.4 国际化 8.3.5 构造模拟时钟 8.4 为状态报告使用计时器 第九章 子商口控制 9.1 按钮类 9.1.1 创建于窗口 9.1.2 子窗口向父窗口发送消息 9.1.3 父窗口向子窗口发送消息 9.1.4 下压按钮 9.1.5 复选框 9.1. 6 单选按钮 9.1.7 分组框 9.1.8 更改按钮文本 9.1.9 可见的和启用的按钮 9.1.10 按钮和输入焦点 9.2 控制与颜色 9.2.1 系统颜色 9.2.2 按钮颜色 9.2.3 wm_ctlcolorbtn消息 9.2.4 拥有者给制按钮 9.3 静态类 9.4 滚动条类 9. 4. 1 colors1程序 9. 4.2 自动键盘接口 9. 4. 3 窗口子类化 9.4.4 给背景着色 9.4.5 给滚动条和静态文本着色 9.5 编辑类 9.5.l 编辑类风格 9.5.2 编辑控制通知 9.5.3 使用编辑控制 9.5.4 发送给编辑控制的消息 9.6 列表框类 9.6.1 列表框风格 9.6.2 将串放人列表框 9.6.3 选择和获取项 9.6.4 接收来自列表框的消息 9.6.5 一个简单的列表框应用程序 9.6.6 文件列表 9.6.7 windows的head程序 第十章 菜单及其他资源 10.l 图标、光标、字符串和定制资源 10.1.1 将图标添加到程序 10.1.2 获取图标句柄 10.1.3 在程序中使用图标 10.1.4 使用自定义光标 10.1.5 字符串资源 10.1.6 定制资源 10.2 菜单 10.2.1 菜单概念 10.2.2 菜单结构 10.2.3 定义菜单 10.2.4 在程序中引用菜单 10.2. 5 菜单和消息 10.2.6 示例程序 10.2.7 菜单设计规范 10.2.8 定义菜单的复杂方法 10.2.9 浮动弹出式菜单 10.2.10 使用系统菜单 10. 2.11更改菜单 10.2.12 其他菜单命令 10.2.13 创建菜单的非正规方法 10.3 键盘加速键 10.3.1 为什么要使用加速键 10.3.2 安排加速键的几条规则 10.3.3 加速健表 10.3.4 加载加速键表 10.3.5 键盘代码转换 10.3.6 接收加速键消息 10.3.7 菜单与加速键应用程序poppad 10.3.8 启用菜单项 10.3.9 处理菜单项 第十一章 对话框 11.1 模态对话框 11.1.1 创建about对话框 11.1.2 对话框及其模板 11.1.3 对话框过程 11.1.4 激活对话框 11.1.5 同的主题 11.l.6 更复杂的对话框 11.1.7 使用对话框控制 11.l.8 ok和cancel按钮 11.1.9 避免全局变量 11.1.10 tab停留位和组 11.1.11 在对话框上绘图 11.1.12 将其他函数用于对话框 11.1.13 定义自己的控制 11.2 非模态对话框 11.2.l 模态对话框与非模态对话框的区别 11.2.2 新的 colors程序 11.2.3 hexcalc:窗口还是对话框? 11.3 通用对话框 11.3.l 增强poppad 11.3.2 unicode 文件 i/o 11.3.3 更改字体 11.3.4 查找与替换 11.3.5 只调用一个函数的windows程序 第十二章 剪贴板 12.1 剪贴板的简单使用 12.1.1 标准剪贴板数据格式 12.1.2 内存分配 12.1.3 将文本传送到剪贴板 12.1.4 从剪贴板上获取文本 12.1.5 打开和关闭剪贴板 12.1.6 剪贴板和unicode 12.2 复杂的剪贴板用法 12.2.l 利用多个数据项 12.2.2 延迟生成 12.2.3 私有数据格式 12.3 实现剪贴极查看器 12.3.1 剪贴板查看器链 12.3.2 剪贴板查看器的函数和消息 12.3.3 一个简单的剪贴板查看器
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值