汇编器(masm 64)错误致命错误LNK1104

问题描述 投票:0回答:1

您能告诉我如何使此代码能够看到 C: 驱动器并正常工作吗?

include \masm64\include64\masm64rt.inc

.data
BS equ 128 
Fname BYTE "C:\",0 ; 
ms1 db "Free space on disk (in bytes) ",0 
totalsize dq ? 
hFile dq ? 
buf db BS dup (?) 
fmt db "%llu",0 
ms2 db "Error!!Disk not found",0 

.code
entry_point proc
    invoke CreateFile, ADDR Fname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL 
    mov hFile, rax 
    cmp hFile, INVALID_HANDLE_VALUE 
    je m1 

    invoke GetDiskFreeSpaceEx, ADDR Fname, NULL, NULL, addr totalsize 
    mov rax, totalsize
    mov rcx, OFFSET buf
    mov rdx, OFFSET fmt
    call wsprintf 

    invoke MessageBox, NULL, ADDR buf, ADDR ms1, MB_YESNO 
    jmp m2

m1:
    invoke MessageBox, NULL, ADDR ms2, ADDR ms1, MB_ABORTRETRYIGNORE 
m2:
    invoke ExitProcess, 0 

entry_point endp
end
assembly winapi x86-64 masm64
1个回答
0
投票

没有可供链接器查找的

CreateFile()
MessageBox()
函数。它们实际上是 C/C++ 预处理器宏,映射到实际函数
CreateFileA()
CreateFileW()
MessageBoxA()
MessageBoxW()
,具体取决于项目配置。在您的情况下,您需要使用
A
函数,因为您使用的是字节字符串。

© www.soinside.com 2019 - 2024. All rights reserved.