Visual Studio 程序集:未解析的外部文件出现奇怪错误,可能是链接器?

Visual Studio Assembly: Strange Error with Unresolved Externals, Possibly Linker?

提问人:TheRichinator 提问时间:3/20/2023 最后编辑:Sep RolandTheRichinator 更新时间:3/21/2023 访问量:52

问:

我正在学习汇编的大学课程,我花了半个学期的时间与 Visual Studio 作斗争,以允许我编写并成功构建一个程序。最近,我遇到了一个错误,这是我在互联网上其他任何地方都看不到的。
这是我的设置过程:

1). 创建一个新的 C++ 项目
2).右键单击“解决方案资源管理器”中的项目名称,并将生成依赖项设置为 MASM (.targets, .props)
3)。右键单击项目名称,然后单击“新增...”
4). 添加一个空白的 C++ 文件,将文件扩展名更改为 .asm 而不是 .cpp
5).确保我在 x86 模式下
运行代码 6)。编写代码
7)。构建,但始终出现错误

这是我一直在尝试使用的代码。它将 5 移动到 EAX,然后向其添加 6。

.386
.model flat, stdcall
.stack 4096
exitprocess proto, dwexitcode: Dword

.data

.code
main proc
    mov eax, 5
    add eax, 6

        invoke exitprocess, 0
main endp


end main

当我构建项目时,它返回以下错误:

构建已开始...
1>------ 构建已启动:项目:Project7,配置:调试 Win32 ------
1>组装 SumAndPrintArray.asm...
1>SumAndPrintArray.obj:错误 LNK2019:函数 _main@0
中引用了未解析的外部_exitprocess@4符号 1>C:\C:\Users\richm\source\repos\Project7\Debug\Project7.exe:致命错误 LNK1120:1 个未解析的外部符号
1>完成生成项目“Project7.vcxproj”-- 失败。
========== 生成:0 个成功,1 个失败,0 个最新,0 个跳过 ============
========== 生成于晚上 10:39 开始,耗时 00.746 秒 ==========

无论项目如何,它总是返回LNK2019错误。我似乎无法分辨它的正面或反面。我什至在另一台计算机上运行了一个全新的项目,并得到了相同的结果。这是怎么回事?

visual-studio 程序集 x86 lnk2019

评论

1赞 pm100 3/20/2023
它被称为 ExitProcess
0赞 Ken White 3/20/2023
这回答了你的问题吗?什么是未定义的引用/未解析的外部符号错误,如何解决?
0赞 rcgldr 3/20/2023
创建另一个项目,用 C 或 C++ 编写代码,设置编译器生成汇编代码的选项,以便查看汇编程序源代码所需的实际名称。请注意,如果这是一个 C++ 项目,则 C++ 会“修改”名称。
2赞 David Wohlferd 3/20/2023
只是为了澄清 pm100 的评论:函数名称区分大小写。是 ,不是.ExitProcessexitprocess
0赞 TheRichinator 3/22/2023
是的,就是这样。我的老师反复说,组装不区分大小写。我想情况并非总是如此。感谢您的帮助!!

答: 暂无答案