| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2315 人关注过本帖, 1 人收藏
标题:使用.if 判断时不能使用多个表达式报error A2070错误,?
取消只看楼主 加入收藏
xinfeng_08
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-22
收藏(1)
 问题点数:0 回复次数:3 
使用.if 判断时不能使用多个表达式报error A2070错误,?
在使用.if 判断时不能使用多个表达式, 如果用多于一个表达式就会报: error A2070错误
就算是使用多重嵌套也不行如:
.if 表达式
.elseif 表达式
.else
.endif

以上也会报error A2070错误
这是什么原因, 请各位指点一下
代码如下:


        .386
        .model flat, stdcall
        option casemap : none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include        user32.inc
includelib    user32.lib
include        kernel32.inc
includelib    kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .data?
hInstance            dd    ?

        .data
szFilePath            db    'd:\test', 0
szS                                 db       '\', 0
szVar                db    '*.*', 0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 定义查找文件并删除文件的函数
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_findFileAndDelete    proc uses ebx edi esi, _szDFile:dword
            local @hFoundFile:dword
            local @stFoundFile:WIN32_FIND_DATA
            local @szFilePath[MAX_PATH]:byte
            local @szFile[MAX_PATH]:byte
            local @fileCountor:dword

            xor    ecx, ecx
            mov    @fileCountor, 0
            invoke    lstrcpy, addr @szFilePath, _szDFile
            invoke    lstrcat, addr @szFilePath, addr szS
            invoke    lstrcat, addr @szFilePath, addr szVar
            
            inc ecx
            invoke FindFirstFile, addr @szFilePath, addr @stFoundFile
            .if eax != INVALID_HANDLE_VALUE
                mov @hFoundFile, eax

                .repeat
                    invoke    lstrcpy, addr @szFile, _szDFile
                    invoke    lstrcat, addr @szFile, addr szS
                    invoke    lstrcat, addr @szFile, addr @stFoundFile.cFileName
                        
                    .if @stFoundFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
                        .if @stFoundFile.cFileName == '.' && (@stFoundFile.cFileName == '..')
                            add    @fileCountor, 1
                        .else
                            add    @fileCountor, 1
                            invoke    _findFileAndDelete, addr @szFile
                            invoke    RemoveDirectory, addr @szFile
                        .endif
                    .else
                        add    @fileCountor, 1
                        invoke DeleteFile, addr @szFile
                    .endif

                    invoke FindNextFile, @hFoundFile, addr @stFoundFile
                .until eax == FALSE

                invoke FindClose, @hFoundFile
            .endif

            ret

_findFileAndDelete    endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 程序入口
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
        invoke    GetModuleHandle, NULL
        mov    hInstance, eax
        invoke    _findFileAndDelete, addr szFilePath
        invoke    ExitProcess, NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        end start
搜索更多相关主题的帖子: 判断 表达 
2008-11-22 17:13
xinfeng_08
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-22
收藏
得分:0 
.if @stFoundFile.cFileName == '.' && (@stFoundFile.cFileName == '..')
报的是上面那一行错误  error: A2070
2008-11-22 17:16
xinfeng_08
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-22
收藏
得分:0 
谢谢 zklhp回复, 能说明一下为什么改成那样就可以通编译呢, 谢谢
2008-11-22 18:18
xinfeng_08
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-22
收藏
得分:0 
谢谢 zklhp 和 ONEPROBLEM两位楼主的回复, 学习了
2008-11-22 19:11
快速回复:使用.if 判断时不能使用多个表达式报error A2070错误,?
数据加载中...
 
   



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

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