2017-04-02 11 views
1

私はには何もない - 最小のサイズのWindows実行可能ファイルを作成したいと思います。pause()と同じWindowsはsyscallですか?

私が心配するのは、タスクマネージャにプロセスエントリを保存することだけです。

Linuxでは、これは非常に簡単です(pause システムコールを使用する場合は2つのアセンブリ命令が必要です)。 Windowsで同様の結果を得るにはどうすればよいですか?

私は実行ファイルのサイズを最小限に抑えようとしていますが、実際には何もしない実行可能ファイルを10kBにしたくありません。

アセンブリでこれを達成する方法はありますか?私が言及したように、私はむしろプロセスを "ハング"にするために巨大なライブラリを含めることはしません。

+0

'foo:jmp foo'? – melpomene

+1

@melpomeneそれは忙しいです。 'pause()'はシグナルが到着するまでプロセスを停止させるシステムコールです。 – fuz

+2

'Sleep(INFINITE)'は多量のコードを必要としません。 –

答えて

1

Hansがコメントで示唆しているように、Sleep(INFINITE)はおそらく最も単純な非ビジー待機です。ただし、タスクマネージャを使用してプロセスを停止してプロセスを停止する必要があることを意味します。

の後にMessageBoxを呼び出すと、このプロセスを何度も開始/停止する必要がある場合は、おそらくあまり面倒ではありません。

あなたは

あなたはアセンブリと、それはわずかに小さく得ることができます(WinMainCRTStartupをして/Zlsmaller alignmentでコンパイルする)CRTを使用しない場合は、おそらく、Visual C++で1 KiBのにそれを得ることができますが、それはおそらくありません価値がある。

関連する問題