将哪些参数传递给PE(可移植可执行文件)文件的入口点?

时间:2015-10-01 20:39:06

标签: winapi assembly x86 portable-executable

如果你组装一个PE(.exe,Win32的可移植可执行文件)文件,它有一个入口点,你可以调用_start_main或任何你喜欢的。

问题是 - 这个入口点是否带有一些args?如果是这样,它们是否可以在堆栈中访问?如果是这样,这个入口点函数是否需要清除堆栈?我在哪里可以找到关于此的文档?

1 个答案:

答案 0 :(得分:6)

没有进程在入口点没有关于它在堆栈上的参数的任何信息。您必须通过RTL_USER_PROCESS_PARAMETERS致电GetCommandLine或访问PEB中的信息,但这不是一个稳定的API。

每个语言支持库(如CRT)也必须这样做。