|
![]() | 作者: jhkdiy [jhkdiy]
![]() |
登录 |
;-------------------------------------------------------------------------------- ;程序名:define to equ ;功能:将C语言的常数定义转换为汇编语言格式。 ; ;使用环境:win9x/2000/xp ;开发环境:win2000 + RadASM 2.0.4 汉化版 + MASM32V8 ; ;作者:jhkdiy ;E-mail:jhkdiy_gzb@21cn.net ;日期:2005/4/30 ;版本:1.0 ;最后修改日期:2005/5/3 使用Win32Asm编程的过程中,经常要用到常数定义,如果是有资源的程序更是如此。 自己当初编程时是先将要转换的C语言常数ID复制到程序的常数区.const中,然后再用查找 替换功能去掉#define语句,再一个个地在常数和数值之间加equ。多的时候麻烦死了。 于是便想开发一个专门用于将这些C语言格式的常数定义转换为汇编格式的程序,刚好 五一有时间就做了个。现在希望大家帮忙测试一下。程序本身使用Win32Asm开发,整个程序 为7kb。 程序下载: http://3h.aostu.com/jhkdiy/soft/define2equ.rar 功能和用法: 1:可以直接将要转换的#define文本复制到文本框中,然后按下“转换”按钮即可 完成转换。也可以导入RC资源文件,可以是多个文件,这里顺便谢谢Aogo,因为 看了他的cocoplayer代码后我才会分离多个文件名。程序会自动搜索资源文件的 #define语句部分,没有#define文本的行是不会添加的。 2:可以使用Equ定义和等于号定义。这一点RadAsm是没有的。 3:可以自动忽略含有负数的常数定义,这个功能对于窗口程序的资源常数ID转换最 最有用了。这一点RadAsm也没有。 4:程序会自动编排转换后的文本,如原来的文本为: #define IDD_DLG_MAIN 1000 #define IDC_EDT_SOURCE 1001 #define IDC_STC1 -1 #define IDC_EDT_TARGET 1002 转换后的文本为: IDD_DLG_MAIN equ 1000 IDC_EDT_SOURCE equ 1001 IDC_EDT_TARGET equ 1002 自动忽略了负数ID。 5:可以将转换后的文本直接复制到剪贴板或者保存为.inc文件。方便独立管理。 注意事项: 每一个#define语句必须单独一行,这也符合C语言的规定。 单独一个资源文件不能超过4kb,否则程序没有这么大的缓冲区来容纳过多的文本。 如果大家在使用过程中有任何问题,请致电24小时服务热线:) jhkdiy_gzb@21cn.net 我会尽快解决。 ![]() [此贴被 jhkdiy(jhkdiy) 在 05月04日13时57分 编辑过] |
地主 发表时间: 05-05-04 13:41 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
紧急增加对 0x100 转换为 100h 的支持, 下载连接不变。 今天自己用了一下才突然想起对16进制常数的支持。所以立即增加了这个功能。当程序遇到如: #define IDC_BTN_CLSSRC 0x1014 或 #define IDC_BTN_CLSSRC 0X1014 都会转换成: IDC_BTN_CLSSRC equ 1014h 其它功能保持不变。 |
B1层 发表时间: 05-05-06 02:03 |
![]() | 回复: NetDemon [netdemon] ![]() |
登录 |
![]() |
B2层 发表时间: 05-05-06 19:55 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
谢谢,好开心啊,第一次受到老大的顶帖。 |
B3层 发表时间: 05-05-07 00:24 |
![]() | 回复: 286 [unique] ![]() |
登录 |
![]() |
B4层 发表时间: 05-05-08 09:06 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号