【发布时间】:2016-07-19 16:10:11
【问题描述】:
我用汇编语言编写了一个简单的程序,它将在 windows 7 32 位中简单地显示一个消息框
.386
.model flat, stdcall
option casemap :none
extrn MessageBoxA@16 : PROC
extrn ExitProcess@4 : PROC
.data
HelloWorld db "Welcome to SecurityTube.net!", 0
MsgTitle db "First MessageBox", 0
.code
start:
mov eax, 0
push eax
lea ebx, MsgTitle
push ebx
lea ebx, HelloWorld
push ebx
push eax
call MessageBoxA@16
push eax
call ExitProcess@4
end start
我使用以下命令进行组装和链接
ml /c /coff helloworld.asm
link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib helloworld.obj
程序完美组装。但是,在链接时,我收到了这个错误:
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
LINK : fatal error LNK1104: cannot open file "kernel32.lib"
为什么我会收到此错误以及如何缓解它?
【问题讨论】:
-
需要指定库路径。
-
Microsoft Macro Assembler Reference 是一个很好的起点。
标签: windows assembly masm masm32