Win32汇编调用MessageBox未弹出 重装RadASM后问题仍未解决
问题修复说明
代码可正常编译但无弹窗的核心原因是lab1.inc中字符串定义非法,不符合Win32 API调用规范:
hello_title定义不完整,缺少标题内容、闭合单引号及Win32 API要求的字符串结尾0结束符,导致MessageBox接收无效的标题参数,调用直接失败hello_message定义后未添加0结束符,同时GetComputerName获取到的计算机名存储在user_name变量中,未拼接至hello_message后,弹窗仅能显示固定前缀(非弹窗失败的核心原因)
修复后的lab1.inc代码
include WINDOWS.inc include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib .data buflen dd 256 hello_title db '提示',0 ; 补充标题内容,添加0结束符 hello_message db 'Computer Name: ',0 ; 补充0结束符 user_name db 256 dup (0)
如果需要显示完整的计算机名,可在GetComputerName调用后自行实现字符串拼接逻辑,将user_name的内容追加到hello_message尾部即可。
内容的提问来源于stack exchange,提问作者Valera
相关产品推荐
相关产品推荐

