gpt4 book ai didi

assembly - 无法解析的外部符号_WinMainCRTStartup

转载 作者:行者123 更新时间:2023-12-02 22:00:11 27 4
gpt4 key购买 nike

我正在尝试使用 Masm32 组装一个简单的“Hello world”应用程序。它组装得很好,但是当我尝试链接它时,链接器说

LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup prog1.exe : fatal error LNK1120: 1 unresolved externals

这是程序的源代码:

.586P

.MODEL FLAT, STDCALL
STD_OUTPUT_HANDLE equ -11

; Prototypes of external procedures
EXTERN GetStdHandle@4:NEAR
EXTERN WriteConsoleA@20:NEAR
EXTERN ExitProcess@4:NEAR

; INCLUDELIB directives for the linker
includelib c:\masm32\lib\user32.lib
includelib c:\masm32\lib\kernel32.lib

;============ data segment =================
_DATA SEGMENT
HANDL DWORD ?
BUFER DB "Hello world\n", 0
NUMB DWORD ?
NUMW DWORD ?
_DATA ENDS

_TEXT SEGMENT
MAIN:
;====== Get the output handle ======
PUSH STD_OUTPUT_HANDLE
CALL GetStdHandle@4
MOV HANDL, EAX


; Output the buffer contents to the console
PUSH 0
PUSH OFFSET NUMW
PUSH NUMB
PUSH OFFSET BUFER
PUSH HANDL
CALL WriteConsoleA@20

;Exit application
PUSH 0
CALL ExitProcess@4
_TEXT ENDS
END

我在一些论坛上发现这是由编码类型引起的。但这似乎对我的问题并不重要

最佳答案

链接器采用入口点的默认名称。您有几个选择。
1. 在平台上使用 C 库,因为您正在使用 MASM,我假设您不想这样做。
2. 将 MAIN 重命名为 _WinMainCRTStartup
3. 在 Link.exe 命令行上使用“-entry:MAIN”(您可能需要“public MAIN”行)

关于assembly - 无法解析的外部符号_WinMainCRTStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4237643/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com