我有非常基本的应用程序,它是控制台应用程序显示消息框。在 Visual Studio 中,我更改了以下选项:
- C/C++ -> SecurityCheck -> Disable Security Check (/GS-)
- Linker -> Advanced -> Entry Point -> main
- Linker -> Input -> -> Ignore All Default Libraries -> Yes (/NODEFAULTLIB)
从 .exe 中删除所有依赖项,如 vcruntime140.dll、api-ms-win-crt-locale.dll 等。
现在,我在导入表中只有一个依赖项,即 user32.dll(消息框需要)。
为什么缺少kernel32.dll?我认为所有 .exe 应用程序都需要 kernel32.dll。
即使缺少 kernel32.dll,应用程序也能正常运行。