lm68140318 发表于 2023-10-23 05:16:03

VS2019

我根据https://blog.csdn.net/qq_34013719/article/details/120357041
在VS2019中设置好了

输入一下代码
;测试ArraySum过程
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD


include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
HelloWorld db "Hello World!", 0
.code

main PROC
   
    invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OK
    INVOKE ExitProcess,0
main ENDP
ENDmain


出现如图所示错误

isdkz 发表于 2023-10-23 05:16:21

根据您提供的信息,您在使用MASM汇编语言编写的代码中遇到了错误。根据您提供的截图,错误信息显示为"unresolved external symbol _MessageBoxA@16"。

这个错误通常表示链接器找不到所需的函数MessageBox。这可能是由于您没有正确链接所需的库文件引起的。

解决此问题的方法是确保在链接器命令中正确引用所需的库文件。在您的代码中,您使用了MessageBox函数,这是属于user32.dll库的函数。因此,您需要在链接器命令中添加对user32.lib库的引用。

以下是您可以尝试的解决方案:

1. 打开VS2019,进入您的项目属性。
2. 在左侧的导航栏中选择“链接器”。
3. 在“输入”下的“附加依赖项”中添加“user32.lib”。
4. 保存更改并重新编译您的代码。

这样应该能够解决链接错误,并成功编译和运行您的代码。

Mike_python小 发表于 2023-10-23 05:16:54

根据你提供的错误信息,可以看出是在链接阶段出现了错误,提示链接器找不到名为kernel32.lib和user32.lib的库。这很可能是由于你的安装目录不同导致的。你可以尝试调整库的路径或让汇编器从标准的路径中搜索库文件。

步骤如下:

1. 在VS2019中,打开项目属性页。
2. 在左侧窗格中选择“汇编器”。
3. 在右侧窗格中,打开“常规”选项卡。
4. 在“附加包含目录”字段中添加masm32的include目录,即C:\masm32\include
5. 在“附加库目录”字段中添加masm32的lib目录,即C:\masm32\lib
6. 在“输入”选项卡中,找到“附加依赖项”字段,并添加kernel32.lib和user32.lib

这些步骤应该能够解决你的问题。如果还有其他错误,请查看错误提示并进行适当的调整。

另外需要注意的是,在64位系统中,masm32是不被支持的,因此你需要选择x64 Native Tools Command Prompt进行编译和链接。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: VS2019