Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何在masm部件中卸下控制台?_Assembly_Masm - Fatal编程技术网

Assembly 如何在masm部件中卸下控制台?

Assembly 如何在masm部件中卸下控制台?,assembly,masm,Assembly,Masm,我是汇编新手,我运行的每个程序都会在后台打开一个控制台(比如cmd)。有没有办法解决这个问题,因为它很烦人?” 我使用的是masm汇编,但我不确定这意味着什么 .386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \mas

我是汇编新手,我运行的每个程序都会在后台打开一个控制台(比如cmd)。有没有办法解决这个问题,因为它很烦人?”

我使用的是masm汇编,但我不确定这意味着什么

.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data

boxcap db "A simple box", 0
message db "<3 Madi",0
abort db "ABORT",0



.code
start: 
    invoke MessageBox,
                        NULL,
                        addr message,
                        addr boxcap,
                        MB_ICONERROR OR MB_ABORTRETRYIGNORE

    .IF eax==IDABORT
        invoke MessageBox, NULL, addr abort, addr abort, MB_OK
    .ELSEIF eax==IDRETRY
        invoke MessageBox, NULL, addr abort, addr abort, MB_OK 
    .ELSEIF eax == IDCANCEL

    .ENDIF

    invoke ExitProcess,NULL

end start
.386
.平板模型,标准球
选项案例图:无
include\masm32\include\windows.inc
include\masm32\include\user32.inc
include\masm32\include\kernel32.inc
includelib\masm32\lib\user32.lib
includelib\masm32\lib\kernel32.lib
.数据
boxcap db“一个简单的盒子”,0

消息db“您需要将
/SUBSYSTEM:WINDOWS
选项传递给链接器。如果您使用ML命令链接,请将
/link/SUBSYSTEM:WINDOWS
添加到命令行的末尾

如果不使用
/entry
选项,则使用
/SUBSYSTEM
选项会更改Microsoft链接器选择默认入口点的方式。操作有点复杂,但如果使用
mainCRTStartup
,则可能需要将其更改为
WinMainCRTStartup


哦,MASM代表宏汇编器,它的全称是Microsoft宏汇编器。以前有一个ASM汇编器不支持宏。

您需要将
/SUBSYSTEM:WINDOWS
选项传递给链接器。如果您使用ML命令链接,请将
/link/SUBSYSTEM:WINDOWS
添加到命令行的末尾

如果不使用
/entry
选项,则使用
/SUBSYSTEM
选项会更改Microsoft链接器选择默认入口点的方式。操作有点复杂,但如果使用
mainCRTStartup
,则可能需要将其更改为
WinMainCRTStartup


哦,MASM代表宏汇编程序,它的全名是Microsoft宏汇编程序。以前有一个ASM汇编程序不支持宏。

如果你不告诉我们你在做什么,就不可能看到可能出现的错误。我们无法调试我们看不到的东西,你也没有提供任何信息。(你基本上说了)医生,我在某个地方感到疼痛。我的物种是人类。怎么了,我该如何让它停止?”。问你自己的医生这个问题,看看你是否能根据这个问题的模糊解释得到诊断和治疗。我敢打赌,如果没有更多的信息,你的医生也不会愿意给你。)和““masm”是“微软汇编程序”(基于.asm扩展名)。如果你不告诉我们你在做什么,就不可能看到哪里出了问题。我们无法调试我们看不到的东西,你也没有提供任何信息。(你基本上说“医生,我在某个地方感到疼痛。我的物种是人类。出了什么问题,我该如何让它停止?“。问你自己的医生这个问题,看看你是否根据这个问题的模糊解释得到了诊断和治疗。我敢打赌,如果没有更多的信息,你的医生也不会给你任何信息。)“masm”是“Microsoft Assembler”(基于.asm扩展名)。好的,我的编译脚本是一个批处理文件,设置为:\masm32\bin\ml/c/Zd/coff Msgbox.asm\masm32\bin\Link/SUBSYSTEM:CONSOLE Msgbox.obj我应该更改什么?对不起,我是新手。感谢您的回答,无论您现在是否回复。在批处理文件中将
/SUBSYSTEM:CONSOLE
更改为
/SUBSYSTEM:WINDOWS
。谢谢!对不起,我刚才没看到。现在它工作得很好。好的,我的编译脚本是一个批处理文件,设置为:\masm32\bin\ml/c/Zd/coff Msgbox.asm\masm32\bin\Link/SUBSYSTEM:CONSOLE Msgbox.obj我应该更改什么?对不起,我是新手。感谢您的回答,无论您现在是否回复。在批处理文件中将
/SUBSYSTEM:CONSOLE
更改为
/SUBSYSTEM:WINDOWS
。谢谢!对不起,我刚才没看到。现在它工作得很好。