winapi - 哪些参数被传递到 PE(可移植可执行文件)文件的入口点?

标签 winapi assembly x86 portable-executable

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

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

最佳答案

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

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

关于winapi - 哪些参数被传递到 PE(可移植可执行文件)文件的入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32896459/

相关文章:

将浮点文字转换为 x86 程序集中的 int 表示形式?

ios - 预处理器循环 '#rep #endrep' 在 Xcode 上不起作用?

c++ - 如何获取全局 Windows I/O 统计信息?

c++ - 格式化适合语言环境的日和月,不带年

c++ - 程序不运行 - 它打开和关闭

x86 - 机器代码如何访问子程序调用的参数?

debugging - 在 OllyDbg 中,您如何强制/提示在某个位置进行反汇编?

c - 如何在 AC_COMPILE_IFELSE 程序中使用 AC_CHECK_HEADER header

assembly - 如何在DOS扩展器或DPMI环境下进行DMA传输?

c++ - 使用我的自定义 WINAPI 调试器启动应用程序时不断抛出异常