论坛: 编程破解 标题: [原创]发布definetoequ1.3,并公开源代码。 复制本贴地址    
作者: 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号