Windows相当于暂停()系统调用?

问题描述:

我想创建一个最小的Windows可执行文件,它的确没有什么都没有 - 而且尺寸最小。Windows相当于暂停()系统调用?

我所关心的只是在任务管理器中保留一个进程条目。

在Linux上,这非常简单(只需要2条汇编指令即可使用系统调用pause )。我如何在Windows上获得类似的结果?

我试图保持可执行文件的大小到最低限度,我不想有10kB可执行文件从字面上什么都不做。

有没有办法在装配中实现这一点?正如我提到的,我宁愿不包括庞大的图书馆只是为了让这个过程“挂起”。

+0

'foo:jmp foo'? – melpomene

+1

@melpomene这是一个忙碌的等待。 'pause()'是一个系统调用,暂停进程直到信号到达。 – fuz

+2

'睡眠(无限)'也不需要太多的代码。 –

正如汉斯在评论中所建议的,Sleep(INFINITE)可能是最简单的非忙等待。但是这意味着你必须用任务管理器终止进程来终止进程。

调用MessageBox然后ExitProcess如果您需要多次启动/停止此过程,则可能不那么麻烦。

你或许可以用Visual C把它降低到1昆明植物研究所++,如果你不使用的CRT(WinMainCRTStartup/Zlsmaller alignment编译)

你可以得到它与装配略小,但它可能是不值得。