搜索
bottom↓
回复: 45

发布一个Keil_C51新的0xFD补丁程序(支持C51v9.05)

[复制链接]

出0入0汤圆

发表于 2011-9-23 10:31:56 | 显示全部楼层 |阅读模式
根据本网站得到的一些资料,闲来无事就写了一个 Keil C51 新的 0xfd 补丁程序以方便大家,支持 v9.05 的新版本,刚刚编译完成,做了初步测试、应该没有问题了吧,兄弟姐妹们如果发现了问题请发帖告知,以方便改进,谢谢。

点击此处下载 ourdev_678864JUCQAY.rar(文件大小:184K) (原文件名:KC51_9NN0XFD.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-10-5 11:06:15 | 显示全部楼层
我刚下了9.05竟然不能写中文注释

出0入0汤圆

发表于 2011-10-5 12:42:23 | 显示全部楼层
马克!

出0入0汤圆

发表于 2011-10-5 14:02:26 | 显示全部楼层
真的是个人才

出0入0汤圆

 楼主| 发表于 2011-10-7 12:50:46 | 显示全部楼层
回复【1楼】hefq 何访贤
我刚下了9.05竟然不能写中文注释  

-----------------------------------------------------------------------
中文注释应该没问题的,你按2楼“aabbccdd”的建议试试。或者在配置界面设置字体为默认的“Courier New”的字体,字号为10号。如果没有这个字体就须彻底删除后重新安装了。或者打开TOOLS.INI在[UV2]下加“ANSI=1”使开发环境用ANSI字符集,都试试应该没问题。

出130入129汤圆

发表于 2011-10-7 13:01:00 | 显示全部楼层
回复【1楼】hefq 何访贤
我刚下了9.05竟然不能写中文注释

-----------------------------------------------------------------------
昨天刚下载了MDK 4.22,C51 9.05 中文注释均没有问题

出0入0汤圆

发表于 2011-10-7 13:55:34 | 显示全部楼层
支持。

出0入0汤圆

发表于 2011-10-7 14:00:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-7 14:33:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-12 11:21:10 | 显示全部楼层
我的9.05刚刚遇到这个问题,正找补丁,一来就看见你的东东了,经测试效果不错,非常感谢!

出0入0汤圆

发表于 2011-10-13 12:38:50 | 显示全部楼层
这个还支持9.05以下版本么?

出0入0汤圆

发表于 2011-10-17 22:17:02 | 显示全部楼层
以下字符在KEIL中不能正确显示:
(GBK扩展字符,字符上面数字为该字的区码,位码都是5C)
   81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
   乗 俓 僜 刓 匼 哱 嘰 圽 塡 奬 媆 孿 峔 嶾 廫
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
怽 慭 抃 揬 擻 昞 朶 梊 榎 橽 歕 沑 淺 漒 瀄 焅
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
燶                      ╘ ‐ 猏 玕 琝 璡 甛 痋
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
癨 盶 瞈 砛 碶 礬 禱 穃 竆 筡 篭 籠 糪 絓 綷 縗
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
繺 羂 耚 肻 腬 臷 芢 荺 萛 蒤 蔦 薥 蘚 蚛 蝄 蟎
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
衆 裓 襖 覾 診 誠 謀 譢 豛 賊 赲 踈 躙 輁 轡 運
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
郳 醆 鈂 鉢 鋅 錦 鎈 鏫 鑌 閈 闬 隲 靄 韁 頫 颸
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE
餦 馶 騖 骪 鬨 鮘 鯸 鱘 鳿 鵟 鶿 鸤 黒 齖 
   
   如要正常显示,需在字符后"\",而"\"转义符号的ASCII码恰恰是"0x5c”,
是否为二者冲突所致?敬请各位测试一下,有何解决之道?

出0入0汤圆

发表于 2011-10-17 23:03:16 | 显示全部楼层
支持

出145入215汤圆

发表于 2011-10-20 11:35:49 | 显示全部楼层
能不能详细介绍下fd的问题!不是很了解

出0入0汤圆

发表于 2011-10-21 19:57:36 | 显示全部楼层
大虾帮小弟解决下这个问题http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5134601&bbs_page_no=1&search_mode=3&search_text=ll007j&bbs_id=9999

出0入0汤圆

 楼主| 发表于 2011-11-23 00:00:38 | 显示全部楼层
答问题一:
这个补丁程序支持9.05及以下版本。

答问题二:
Keil一直以来都没有很好地支持中文,编译器假设或者无视源程序中使用中文字符串的可能,编译器的开发都是针对英文字符特点的,一些属于编译控制类的字符、如果同时属于中文字符用到的字节码就可能出问题,因为编译器不会去判断这个字符是不是中文双字节码中的一部分(双字节中文字符中的前导字节或者后续字节),0xFD是在编译过程中被编译器按照他自己设定的惯例过滤掉的,对其他的特殊字符、包括转义符等,在编译过程中都可能会被当作编译控制字符,完成了控制使命后被丢弃或篡改,因此、如果要让编译器不要按它的英文规则去处理中文字符串、最好把中文字符串手工转换成十六进制字节数据的最终格式,这样编译器就按字节数据去直接使用了,而不再需要进行一次包含转义控制等功能的编译转换工作,没有了这种字符串到实际字节数据的“编译转换工作”当然就不会过滤或者丢掉什么了。
或者说由我们自己手工对字符串进行转换,不让编译器去搞定,就无问题了,如果按照这种方式写程序、0xfd的问题都不需要进行修正了,因为既然不让编译器干这种字符串到字节数据的转换工作,他有没有问题就无所谓了。
手工转换很简单:把中文字符串写到记事本中保存,改文件后缀名为BIN,然后用UltraEdit按照BIN格式(二进制格式)打开然后复制十六进制字节码到编译器,再按C的十六进制字节格式调整一下即可。或者编写一个字符串到二进制C串的转换程序转换一下即可,非常简单。

出145入215汤圆

发表于 2011-11-23 22:07:37 | 显示全部楼层
谢谢楼上的解答!

出0入42汤圆

发表于 2011-11-24 10:03:13 | 显示全部楼层
我用Keil碰到的问题是,经常会有半个字符的乱码,这个补丁可以解决么?

出0入0汤圆

发表于 2012-8-2 21:30:10 | 显示全部楼层
谢谢楼主,你帮我解决大问题了!12864液晶显“数”字,要么显不出来,要么显示成别的字。用了你的软件就好了!

出25入12汤圆

发表于 2012-8-2 21:53:36 来自手机 | 显示全部楼层
这个问题keil有解释,是因为ANSI C标准中ASC码到好像FC结束,所以FD就忽略了,所以我现在都在程序中改了,不大补丁了

出0入0汤圆

发表于 2012-8-2 22:01:37 | 显示全部楼层
chenerbox2 发表于 2012-8-2 21:53
这个问题keil有解释,是因为ANSI C标准中ASC码到好像FC结束,所以FD就忽略了,所以我现在都在程序中改了, ...

请问您怎么在程序中改呢?

出25入12汤圆

发表于 2012-8-3 00:48:41 | 显示全部楼层
水哥 发表于 2012-8-2 22:01
请问您怎么在程序中改呢?

code char CTMenu_7[] = "参\xCA\xFD设置";    //"数" 的内码 cafd

出0入0汤圆

发表于 2012-8-3 11:42:34 | 显示全部楼层
chenerbox2 发表于 2012-8-3 00:48
code char CTMenu_7[] = "参\xCA\xFD设置";    //"数" 的内码 cafd

非常感谢,回头我试试。

出0入0汤圆

发表于 2012-10-1 18:17:26 | 显示全部楼层
回复一下看看在另一个时事论坛是不是被禁言了

出0入0汤圆

发表于 2012-10-1 18:22:06 | 显示全部楼层
谢谢楼主了

出0入0汤圆

发表于 2013-3-19 10:56:29 | 显示全部楼层
很好的软件谢谢了,解决了令我头疼的问题

出0入0汤圆

发表于 2013-7-15 17:48:38 | 显示全部楼层
非常感谢,现在正好解决了我的问题!

出0入0汤圆

发表于 2013-8-5 16:14:25 | 显示全部楼层
非常感谢 我以为啥问题呢  多谢

出0入0汤圆

发表于 2013-8-8 15:48:53 | 显示全部楼层
好像有什么问题,
随便点个目录 都提示 "打补丁完成!"

出0入0汤圆

发表于 2013-8-8 15:52:52 | 显示全部楼层
C51.EXE 替换了 1 处。
C51.EXE 备份错误!
CX51.EXE 替换了 1 处。
CX51.EXE 备份错误!
A51.EXE 没有找到打补丁的位置!

AX51.EXE 没有找到打补丁的位置!

出0入0汤圆

发表于 2013-8-14 10:24:38 | 显示全部楼层
正好我回去试试

出0入0汤圆

 楼主| 发表于 2013-9-25 14:42:36 | 显示全部楼层
好像有什么问题,
随便点个目录 都提示 "打补丁完成!"
------------------------------------------------------------------------------------------
这个没问题的,如果有该补的地方就修补、并且显示一行“XXX.EXE 替换了 n 处”的提示信息,没有该补的地方就显示一行“XXX.EXE 没有找到打补丁的位置!”的提示信息,我没有考虑得太周全,应该删除这个程序中最末尾处显示“打补丁完成!”的语句就可以了,免得造成误解和疑问。

出0入0汤圆

 楼主| 发表于 2013-9-25 15:14:06 | 显示全部楼层
C51.EXE 替换了 1 处。
C51.EXE 备份错误!
CX51.EXE 替换了 1 处。
CX51.EXE 备份错误!
A51.EXE 没有找到打补丁的位置!

AX51.EXE 没有找到打补丁的位置!
-------------------------------------------------------------------------------------------
CX51.EXE 备份错误!,这个问题很奇怪,备份文件名加了毫秒精度的日期时间串如:“BAK2013925144844_AX51.EXE”不应该有同名问题而发生错误,因此应该是发生了磁盘的读写限制或者建立文件的限制吧,你应该检查一下登录用户的系统访问权限(尤其是XP以上的系统)或者杀毒软件等的磁盘读写和建立文件的限制。

A51.EXE 没有找到打补丁的位置!,这个是你已经修补过一次的文件了,需要修补的特征不存在当然就找不到啦!

如果是安装后的第一次修补,以上提示信息的疑问可能是版本参数没有选对。

出0入0汤圆

发表于 2013-9-25 22:04:04 | 显示全部楼层
mark               

出0入85汤圆

发表于 2013-9-25 22:31:16 | 显示全部楼层
MDK汉字注释编辑真麻烦,搞不好就乱码,这个怎么搞?

出0入0汤圆

发表于 2013-9-26 00:08:37 | 显示全部楼层
marshallemon 发表于 2013-9-25 22:31
MDK汉字注释编辑真麻烦,搞不好就乱码,这个怎么搞?

升级到4.72,设置里改成无符号UTF8

出0入85汤圆

发表于 2013-9-26 09:51:26 | 显示全部楼层
goolloo 发表于 2013-9-26 00:08
升级到4.72,设置里改成无符号UTF8

能具体点吗?

出0入0汤圆

发表于 2013-9-27 12:31:58 来自手机 | 显示全部楼层
谢谢楼主...........

出0入0汤圆

 楼主| 发表于 2013-9-27 21:02:54 | 显示全部楼层
按本网站网友反馈的信息,修改了一下程序代码,应该不再会发生提示信息的疑问了,界面也修改了一下更方便使用。
说明:
一、程序界面中的“修改位置”输入框用于填入查找到的修改位置的顺序号数字序列,表示仅仅修补这些找到的出现了特征串的位置。因为修补时EXE文件中可能存在多个特征串,比如9.05以后版本中、A51.EXE、AX51.EXE就有两处包含“80FBFD0F”的特征串,一般修补第一个找到的特征串即可,这时“修改位置”输入框填1,如果找到的第一个和第二个都想要修补、那么“修改位置”输入框填1,2即可,假设EXE文件包含有三个特征串、如果填1,3就是仅修改第一个找到的特征串和第三个找到的特征串、而跳过第二个,以此类推。

二、程序界面中的“版本选择”用于选择Kei的版本号,如果选择其中的“用户设定”选项、那么界面下方的编辑输入框可输入十六进制的查找特征串和替换串、程序按照用户指定的查找特征串和替换串进行修补。

其他操作界面比较直观就不详细说明了,兄弟姐妹们如果发现了问题请发帖告知,以方便改进,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-9-29 11:15:05 | 显示全部楼层
谢谢,mark

出0入0汤圆

发表于 2013-10-31 15:53:19 | 显示全部楼层
哈哈 谢谢楼主 帮大忙了  好人

出0入0汤圆

发表于 2015-1-27 09:52:32 | 显示全部楼层
在此谢过!这问题困扰许久 一直以为程序出错 !哎。。。

出0入0汤圆

发表于 2015-9-28 17:08:47 | 显示全部楼层
纠结了好久了,终于找到这个东西了。谢谢楼主!!!

出0入8汤圆

发表于 2015-9-28 22:10:26 | 显示全部楼层
现在新版本还用改吗?我好久没用过汉字库了,

出0入0汤圆

发表于 2015-11-23 09:27:44 | 显示全部楼层
实测 不行的 还是有乱码 待机的待字
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 10:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表