这三个函数之间有什么区别以及何时使用它们?
答案 0 :(得分:21)
main()表示您的计划是console application。
WinMain()表示程序是GUI application - 也就是说,它显示窗口和对话框而不是显示控制台。
DllMain()表示该程序为DLL。 DLL不能直接运行,但由上述两种应用程序使用。
因此:
答案 1 :(得分:8)
WinMain用于应用程序(结束.exe)以指示进程正在启动。它将为进程提供命令行参数,并充当进程的用户代码入口点。 WinMain(或不同版本的main)也是必需的功能。操作系统需要调用函数才能启动正在运行的进程。
DllMain用于DLL表示许多不同的场景。最值得注意的是,它将在
时调用DllMain是一个可选构造,并且有很多与之关联的隐式契约。例如,您不应该调用将强制加载另一个DLL的代码。一般来说,正确的功能是相当困难的,应该避免,除非你有一个非常具体的需要。
答案 2 :(得分:0)
[您的问题的附录]
也不要忘记DllEntryPoint:
涉及加载时间时,入口点是DllMain。
(例如COM进程内服务器DLL)。
涉及运行时间时,入口点是DllEntryPoint。
(例如,调用LoadLibrary)。