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

What arguments are passed to entry point of a PE (Portable Executable) file?

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

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

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

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