CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

急求关于宏的详细资料,有段宏代码看不懂(内详)

楼主jronald(深白色)2004-08-03 15:55:00 在 VC/MFC / 基础类 提问

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  ;   将参数列表的顺序翻转  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  reverseArgs macro arglist:VARARG  
  local txt,count  
           
  txt TEXTEQU <>  
  count =   0  
  for i,<arglist>  
                  count =   count   +   1  
                  txt TEXTEQU   @CatStr(i,<!,>,<%txt>)  
  endm  
  if count   GT   0  
                  txt SUBSTR     txt,1,@SizeStr(%txt)-1  
  endif  
  exitm txt  
  endm  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  ;   建立一个类似于   invoke   的   Macro  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  _invoke macro _Proc,args:VARARG  
  local count  
           
  count =   0  
  % for i,<   reverseArgs(   args   )   >  
  count =   count   +   1  
  push i  
  endm  
  call dword   ptr   _Proc          
           
  endm  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 问题点数:20、回复次数:7Top

1 楼jronald(深白色)回复于 2004-08-03 16:25:06 得分 0

UPTop

2 楼kvls(冰茶)回复于 2004-08-03 16:28:31 得分 20

WIN32   汇编怎么发到这儿来了。。。  
  什么看不懂?全部?Top

3 楼jronald(深白色)回复于 2004-08-03 17:06:57 得分 0

全部  
  这方面资料真难找啊Top

4 楼jronald(深白色)回复于 2004-08-03 17:07:53 得分 0

借点人气  
  反正VC也能用Top

5 楼soft2003(softXP)回复于 2004-08-03 17:09:54 得分 0

http://community.csdn.net/Expert/topic/3238/3238782.xml?temp=.8875086Top

6 楼kvls(冰茶)回复于 2004-08-03 17:53:19 得分 0

写一下主要语句的意思  
   
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  ;   建立一个类似于   invoke   的   Macro  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  _invoke macro _Proc,args:VARARG  
  local count  
           
  count =   0  
  % for i,<   reverseArgs(   args   )   >   循环遍历reverseArgs(   args   )的返回值,将每个返回值循环赋给i  
  count =   count   +   1  
  push i       将参数压栈  
  endm  
  call dword   ptr   _Proc         调用函数  
           
  endm  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  ;   将参数列表的顺序翻转  
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
  reverseArgs macro arglist:VARARG  
  local txt,count  
           
  txt TEXTEQU <>     定义一个预处理文本变量  
  count =   0     这个用来保存参数个数  
  for i,<arglist>     循环遍历arglist,将每个参数的名字赋给i  
                  count =   count   +   1     统计参数个数  
                  txt TEXTEQU   @CatStr(i,<!,>,<%txt>)   将每个参数倒过来练成一个文本字符串,最后的结果应该如同:参数2,参数1  
  endm  
  if count   GT   0  
                  txt SUBSTR     txt,1,@SizeStr(%txt)-1   返回上面得到的参数文本字符串  
  endif  
  exitm txt  
  endm  
   
  PS:我这样的解释可能不太明白,在这里一个字符串和数值变量可以互相转换,比如txt是一个字符变量,但加上<txt>后可以便是取它的值   %号也是取值的意思   !是转义的意思,像txt TEXTEQU   @CatStr(i,<!,>,<%txt>)   这句话,你就可以理解为txt   =   @CatStr(i,   txt)   不过这样写会出错而已。  
   
  现在懂汇编的少,懂汇编宏的更少。Top

7 楼jronald(深白色)回复于 2004-08-03 20:05:09 得分 0

多谢Top

相关问题

  • 一段宏代码的疑问...
  • 新建的EXCEL中,如何动态追加宏代码???
  • 在VB中如何调用EXCEL中的宏代码
  • 如何查看access应用程序宏代码
  • 怎样找回编辑宏代码的密码?(Excel2000)
  • excel 2000下怎样对VBA或宏代码进行保护?
  • 请问这样的宏代码怎么写
  • 那位大侠帮我看看这一行宏代码是什么意识
  • Excel宏代码:单元格比较中ActiveCell.FormulaR1C1=""公式设置的问题。
  • 关于office的宏代码的加载问题!请专家指点

关键词

  • 文本
  • txttextequ
  • 参数
  • fori
  • catstr
  • 字符串
  • 变量
  • count
  • 意思
  • txt

得分解答快速导航

  • 帖主:jronald
  • kvls

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo