0

コンソールアプリケーションを最後に一時停止し、Enterキーを押すと、アセンブリで終了する方法を知りたいです。これは、画面に「hello world」を表示するコードの一部ですが、すぐに閉じます。では、最後にプログラムを一時停止する方法は?

.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc

.data
sConsoleTitle  db "Console Application",0
sWriteText  db "Hello World",0
.code

Main PROC
    LOCAL hStdout :DWORD
    invoke SetConsoleTitleA, offset sConsoleTitle

    invoke GetStdHandle, STD_OUTPUT_HANDLE
    mov hStdout,EAX

    invoke WriteConsoleA, hStdout, offset sWriteText, 16d, 0, 0
    invoke ExitProcess, 0

Main ENDP
end Main
4

1 に答える 1

0

あなたはすでにコンソールで作業しているので(私は見stdoutWriteConsole)、適切なコンソールで作業することをお勧めします:

  • cmd.exe。[スタート]->[ファイル名を指定して実行]から実行するだけで、最新のすべてのWindowsに含まれています。異なるフォントを使用するように変更したり、サイズを変更したりできます。
  • WindowsPowerShell。ほとんどの人はそれが好きです。私はしません。
  • Consoleのようなターミナルプログラム。タブ、半透明性、Linuxのようなマウスの動作は素晴らしいものです。

.exeをクリックして実行するのは素晴らしいことですが、入力を提供したい場合はどうなりますか?コマンドラインパラメータ?stdin / stdoutをリダイレクトしたい場合はどうなりますか?ファイルをパイプしたり、grepなどの別のプログラムにパイプしたりする場合はどうなりますか?スクリプトなどからプログラムを非対話的に実行したい場合はどうなりますか?

コンソールプログラムを簡単に操作できないことは、 Windowsの欠点の1つです。あなたのコードでこれを補って、それをする方法を見つけたすべての人を動揺させないでください。

もう1つのオプションは、実行可能ファイルを呼び出してから実行するバッチファイルを作成することpauseです。

于 2012-07-28T12:53:51.590 に答える