;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;处理导入表模块
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .const
szname        db    '动态链接库名称: %s',0dh,0ah
szError        db    '无导入函数 !',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
         .code

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcessImportTable     proc       _lpFile,_lpPeHead,_dwSize
                local    @szBuffer[1024]:byte,@szSectionName[16]:byte
            
                pushad
                mov    edi,_lpPehead
                assume    edi:ptr IMAGE_NT_HEADER    ;获取nt头

                mov    eax,[edi].OptionalHeader.DataDirectory[8].VirtualAddress
                .if     ! eax              ;判断是否存在导入表
                invoke    MessageBox,hWinMain,addr szError,NULL,MB_OK
                jmp    _ret
                .endif
                inovke    _RVAToOffset, _lpFile, eax   ;将dos头以及导入表的内存地址转换为
                add     eax,_lpFile ;获得导入表实际地址
                mov     edi,eax      ;先将导入表地址送给edi,然后使其指向导入表结构
            assume    edi:ptr    IMAGE_IMPORT_DESCRIPTOR    ;edi指向了导入表结构

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;循还显示dll文件名,直到遇到全为0结束
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>        
     
            .While    [edi].OriginalFristThunk || [edi].TimeDateStamp || \
[edi].ForwarderChain || [edi].Name1 || [edi].FirstThunk
            invoke    _RVAToOffset,_lpFile,[edi].Name1
            ;add    eax,_lpfile
            invoke    wsprintf,[edi].Name1


                                
_ret
        assume    edi:noting
        popad
        ret
_ret       endp
_processImportTable     endp



错误提示如下

 Assembling: Main.asm
_ProcessImportTable.asm(23) : error A2008: syntax error : _RVAToOffset
_ProcessImportTable.asm(33) : error A2006: undefined symbol : _RVAToOffset
_ProcessImportTable.asm(39) : error A2008: syntax error : _ret
_ProcessImportTable.asm(40) : error A2006: undefined symbol : noting
_ProcessImportTable.asm(40) : error A2158: type is wrong size for register
_ProcessImportTable.asm(43) : fatal error A1010: unmatched block nesting : _ret
NMAKE : fatal error U1077: 'ml' : return code '0x1'
Stop.