| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 744 人关注过本帖
标题:基础问题,求助,请问''里面的是字符还是字符串?""呢?
只看楼主 加入收藏
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
结帖率:54.55%
收藏
已结贴  问题点数:20 回复次数:6 
基础问题,求助,请问''里面的是字符还是字符串?""呢?
直接在程序里定义的 'a'这样表示的是把a转成acssi码之后的数值吧?
'aaaa'这个是否也是?

请问:[第十章的查找全盘文件的例子]
.if    @stData.cFileName != '.'
                                 invoke    _findfile,addr @szFindFile
.endif
这里我要再加多一个[[[用逻辑与[]]] @stData.cFileName != '..'  这个怎么加?我加的都会出错。


之后我改成jz的
   invoke lstrcmp,@stData.cFileName,addr szd   ;这里是 db '.',0      
  mov @checkd,eax
 ;cmp @checkd,0
  jz @f
                          
    invoke lstrcmp,@stData.cFileName,add szdd ;db '..',0
  mov @checkdd,eax
  ;cmp @checkdd,0
   jz @f
会出错。编译过了。查找时会出错。不知
搜索更多相关主题的帖子: 字符 基础 
2009-09-24 14:02
swp160108
Rank: 2
等 级:论坛游民
威 望:4
帖 子:63
专家分:98
注 册:2008-11-10
收藏
得分:6 
只有字符能用=比较 字符串必须用函数来比较 不用cmp指令 .if支持 eax==ebx ebx!=eax  eax&&ebx 等运算符的
invoke lstrcmp,@stData.cFileName,addr szd   ;这里是 db '.',0
.if !eax
    ;这是字符串相等
.else
    ;这是字符串不相等
.emdif
2009-09-24 14:09
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
程序代码:
              invoke lstrcmp,@stData.cFileName,addr szd 
                          mov @checkd,eax 
                          invoke lstrcmp,@stData.cFileName,addr szdd 
                          mov @checkdd,eax 
                          .if @checkd && @checkdd 
                              invoke    _findfile,addr @szFindFile 
                          .endif    
这样是那里有问题呢。都是会内存不能为read


                            ; .if    @stData.cFileName != '.'  
                             ;    invoke    _findfile,addr @szFindFile 
                           ; .endif
用这句是OK的可以查找的。

程序代码:
原分支是这样的。
 .if    @stData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY 
                           
           .if    @stData.cFileName != '.'  
     invoke    _findfile,addr @szFindFile 
       .endif 
                      .else 
                               invoke MessageBox,NULL,addr @szFindFile,CTXT("Find-File"),0 
                     .endif
2009-09-24 14:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
WIN32_FIND_DATA STRUCT
  dwFileAttributes      DWORD      ?
  ftCreationTime        FILETIME <>
  ftLastAccessTime      FILETIME <>
  ftLastWriteTime       FILETIME <>
  nFileSizeHigh         DWORD      ?
  nFileSizeLow          DWORD      ?
  dwReserved0           DWORD      ?
  dwReserved1           DWORD      ?
  cFileName             BYTE MAX_PATH dup(?)
  cAlternate            BYTE 14 dup(?)
WIN32_FIND_DATA ENDS
2009-09-24 18:13
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:8 
都是会内存不能为read

应该给地址~~

应该是指针的问题~~
2009-09-24 18:14
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:6 
lstrcmp(LPCSTR str1,LPCSTR str2)  参数是两个字符串指针变量,不是值变量

所以应该是
invoke lstrcmp,addr @stData.cFileName,addr szd

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-09-24 20:11
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
谢谢二位。。我看提示时也是看到是lp开头的参数,感觉上没错我就以为是打上地址的了。
2009-09-25 07:56
快速回复:基础问题,求助,请问''里面的是字符还是字符串?""呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023751 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved