Winapi 如何编写输出到当前控制台的win32汇编程序,而不是创建新的程序?

Winapi 如何编写输出到当前控制台的win32汇编程序,而不是创建新的程序?,winapi,assembly,cmd,Winapi,Assembly,Cmd,我正在使用代码,使用nasm编译,并使用alink链接。每当我在bash中运行生成的exe时,它都会生成一个与现有命令shell分离的新控制台。 我该如何编写一个使用它在其中执行的原始控制台的程序,而不是生成一个新的控制台?来自代码: ;; Since this is a Windows subsystem program, we need to allocate a console, ;; in order to use one. call [AllocConsole] 换句话说,它非常

我正在使用代码,使用nasm编译,并使用alink链接。每当我在bash中运行生成的exe时,它都会生成一个与现有命令shell分离的新控制台。 我该如何编写一个使用它在其中执行的原始控制台的程序,而不是生成一个新的控制台?

来自代码:

;; Since this is a Windows subsystem program, we need to allocate a console,
;; in order to use one. 
call [AllocConsole] 
换句话说,它非常明确地创建了一个全新的控制台。要使其使用现有控制台,请将其链接为控制台子系统应用程序而不是Windows子系统应用程序,并从代码中删除对AllocConsole()的调用。

;; Since this is a Windows subsystem program, we need to allocate a console,
;; in order to use one. 
call [AllocConsole] 
换句话说,它非常明确地创建了一个全新的控制台。要使其使用现有控制台,请将其链接为控制台子系统应用程序而不是Windows子系统应用程序,并从代码中删除对AllocConsole()的调用。

;; Since this is a Windows subsystem program, we need to allocate a console,
;; in order to use one. 
call [AllocConsole] 
换句话说,它非常明确地创建了一个全新的控制台。要使其使用现有控制台,请将其链接为控制台子系统应用程序而不是Windows子系统应用程序,并从代码中删除对AllocConsole()的调用。

;; Since this is a Windows subsystem program, we need to allocate a console,
;; in order to use one. 
call [AllocConsole] 

换句话说,它非常明确地创建了一个全新的控制台。要使其使用现有控制台,请将其链接为控制台子系统应用程序而不是Windows子系统应用程序,并删除对AllocConsole()的调用。

如果从cmd.exe shell而不是“bash”运行程序,您是否尝试过同样的情况?对不起,我正在用cmd.exe修改bash脚本。我认为cmd也可以被称为bash,就像linux命令行可以被称为sh一样。这就清楚了吗?你们链接子系统“控制台”了吗?如果您不这样做,就会发生这种情况,即如果您链接Win32子系统,则没有默认控制台。@用户:没有Win32子系统。如果您从cmd.exe shell而不是“bash”运行程序,您是否尝试过同样的情况?对不起,我正在用cmd.exe破坏bash脚本。我认为cmd也可以被称为bash,就像linux命令行可以被称为sh一样。这就清楚了吗?你们链接子系统“控制台”了吗?如果您不这样做,就会发生这种情况,即如果您链接Win32子系统,则没有默认控制台。@用户:没有Win32子系统。如果您从cmd.exe shell而不是“bash”运行程序,您是否尝试过同样的情况?对不起,我正在用cmd.exe破坏bash脚本。我认为cmd也可以被称为bash,就像linux命令行可以被称为sh一样。这就清楚了吗?你们链接子系统“控制台”了吗?如果您不这样做,就会发生这种情况,即如果您链接Win32子系统,则没有默认控制台。@用户:没有Win32子系统。如果您从cmd.exe shell而不是“bash”运行程序,您是否尝试过同样的情况?对不起,我正在用cmd.exe破坏bash脚本。我认为cmd也可以被称为bash,就像linux命令行可以被称为sh一样。这就清楚了吗?你们链接子系统“控制台”了吗?如果不这样做,则会发生这种情况,即如果链接Win32子系统,则没有默认控制台。@用户:没有Win32子系统。alink的“-subsys con”参数将其清除。非常感谢。阿林克的“-subsys con”论点澄清了一切。非常感谢。阿林克的“-subsys con”论点澄清了一切。非常感谢。阿林克的“-subsys con”论点澄清了一切。非常感谢。