|
![]() | 作者: jhkdiy [jhkdiy]
![]() |
登录 |
使用Win32Asm编程的过程中,经常要用到常数定义,如果是有资源的程序更是如此。 自己当初编程时是先将要转换的C语言常数ID复制到程序的常数区.const中,然后再用查找 替换功能去掉#define语句,再一个个地在常数和数值之间加equ。多的时候麻烦死了。 于是便想开发一个专门用于将这些C语言格式的常数定义转换为汇编格式的程序,刚好 五一有时间就做了个。现在希望大家帮忙测试一下。程序本身使用Win32Asm开发,整个程序 为7kb。 功能和用法: 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 to equ ;功能:将C语言的常数定义转换为汇编语言格式。 ; ;使用环境:win9x/2000/xp ;开发环境:win2000 + RadASM 2.0.4 汉化版 + MASM32V8 ; ;作者:jhkdiy ;E-mail:jhkdiy@3126.com ;论坛: http://vincey.uni.cc 或 http://vincey.info ;创建日期:2005/4/30 ;最后版本:1.3 ;版本历史: ; 1.0 : 自己测试用 ; 1.1 : 发布版本,增加对十六进制定义常数的支持 ; 1.2 : 增加对TAB分隔符分隔的常数定义的支持 ; 1.3 : 改用动态分配内存的方法,RC文件的大小不再受4096字节的限制。 ;最后修改日期:2005/8/15 ;注意: 你可以自由传播本代码,但请保留代码的完整性和作者信息,且本代码不可用于 ; 任何形式的商业活动,谢谢. ;-------------------------------------------------------------------------------- 注意事项: 每一个#define语句必须单独一行,这也符合C语言的规定。 define to equ 源代码下载地址: http://jhkdiy.go3.icpcn.com/code/define2equ.rar 程序图片: ![]() 如果大家在使用过程中有任何问题,请致电24小时服务热线:) http://vincey.uni.cc 或 http://vincey.info e-mail:jhkdiy@3126.com 我会尽快解决。 |
地主 发表时间: 05-08-17 20:15 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
晕,不会没人用Win32Asm吧! |
B1层 发表时间: 05-08-20 22:45 |
![]() | 回复: drckness [drckness] ![]() |
登录 |
平时用DELPHI/VB/ASP/最多用到C++,asm汇编压根就没用过。![]() ![]() ![]() |
B2层 发表时间: 05-08-20 23:04 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
呵呵,你还真幽默。 |
B3层 发表时间: 05-08-21 12:51 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号