在 win32 上用 MASM 组装的程序没有控制台输出
Posted
技术标签:
【中文标题】在 win32 上用 MASM 组装的程序没有控制台输出【英文标题】:No console output from program assembled with MASM on win32 【发布时间】:2011-12-30 01:59:14 【问题描述】:我正在运行一些 MASM32 示例(来自 www.masm32.com),我注意到我的命令行框中的控制台输出为空白(程序编译、链接和运行,但没有输出。
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
include \masm32\include\windows.inc ; always first
include \masm32\macros\macros.asm ; MASM support macros
include \masm32\include\masm32.inc
include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.code ; Tell MASM where the code starts
start: ; The CODE entry point to the program
print chr$("Hey, this actually works.",13,10)
exit
end start ; Tell MASM where the program ends
【问题讨论】:
有一个print
宏吗?
笨蛋,使用错误的批处理文件来构建示例(使用 build,bat,应该使用 buildc.bat)。
是的,确实有一个打印宏,它非常方便。 :-)
【参考方案1】:
当您为 Win32 链接 PE 程序时,您可以将所需的子系统标记为“GUI”或“控制台”。如果您已将其链接为 GUI 模式程序,则当您从命令提示符运行 EXE 时,Windows 不会将控制台附加到您正在输入的窗口中。这听起来像你描述的症状。
确保将可执行文件与“控制台”子系统标志链接起来。
【讨论】:
以上是关于在 win32 上用 MASM 组装的程序没有控制台输出的主要内容,如果未能解决你的问题,请参考以下文章
Win10 + MASM32 + EditPlus 汇编语言编程环境设置