VC6帮助文件BUG的修改
作者:cadinfo(无语轻风)
时间:2002-7-2
使用VC6的朋友无论你是菜鸟或者是大牛,可能都在为一件事情烦恼,那就是MS的工程师在设计VC6编译器的情况下——他们缺心眼的对简体中文斜眼相看,在你使用MFC AppWizard向导生成应用程序项目的时候,如果选择了Context Help的话,那么头疼的事情就此开始了,在项目子目录hlp中的所有rtf文件都不能正常显示中文,我在寻找解决的方法,心想:或许很简单,或许先天不足,回天乏术。
幸运的是我做到了,是我想象的第一种,太简单了——
序幕:在CSDN上看到网友发文,苦苦寻觅解决之道,然而应者聊聊,都没有研究过?我当时意识到这必定是VC的BUG,而不是那位朋友的机器出了问题!于是决定迎战——
战场:开始动手,生成新项目,当然选择Context Help,然后Finish,一切风平浪静,毫无硝烟!项目生成之后,立马进入hlp目录,AfxCore.rft,AfxDb.rtf,AfxDlg.rtf,AfxOleCl,AfxOleSv,AfxPrint.rtf(呈现在我的眼前)[1],打开A.用“写字板”,B.用“winword”,果然有BUG——乱码。在战场上看到敌人,最忌讳的就是惊慌失措,我定了定神,开始指定方案,还真是无从着手,乱码-乱码-乱码,忽然我眼前一亮,前几天我的系统也是无法显示中文[2],怎么解决的,我一拍脑袋——代码页,一定是代码页的问题。
回忆:爱机购于2001/8/25,农历7/7,真是爱不释手,连一个简单的Console窗口我都要给它美化一番,我给它设置背景,定制输出提示——太美了!现在它的提示是:
图形图象工作室 [Administraotr]
星期二 2002-7-2
当前时间:21:10:24.53
工作空间>
可是不知道出了什么差错中文目录一概是???,一次偶然的机会使用了chcp命令,发现代码页(Code Page)显示为437,这不是英文代码页吗!我恍然大悟,立马chcp 936,OK回到了那个显示中文的美好年代!
除虫:咣当!茶杯从托盘掉了下了,惊醒了我美好的回忆,也发出了进攻的号角:我选定一个rtf文档AfxCore.rtf,右击,打开方式(H)->选择程序…当然不能再用可以解析rtf格式的那种,我选用了“记事本”,哈,果然是Ascii文件,逐行扫描,锁定cpg,果然不出所料,代码页被活活的设置成了950,这是哪和哪的事啊!选择编辑(E)->替换(R),将cpg950全部替换为cpg936,保存退出。我开始考虑用“写字板”打开,祈祷着不要打击我,事实上没有,成功了。
尾声:话不能说得这么绝对,我用的是W2K+SP2,VC6+SP5,据说在98的机器上是没有这种BUG的,原因是它有简繁体自动转换的机制,也许CPG 950正好指向繁体中文呢!但是至少我的机器CPG 950为无效代码页。
另外MS的工程师确实也太不敬业了,或者说对我们国家存在偏见,太可恶了,我觉得使用正版软件的应该争取自己的权利,把它推向被告席。当然我是不敢的了,原因是今年3月份我开发图象软件过程中发现PS公司的图象格式有出入,然后去征求资料,吃了闭门羹不说,还向我索要注册号!FT我穷啊!
[1] 此处为了说明全面,列出了所有rtf文件,实际上生成其中的几个
[2] 指dos shell窗口状态