我有几个非常简单的问题。我在网上搜索了它们,但找到了不同的答案,所以我只想知道该遵循哪个。
所以,首先,我相信 WinMain 不是 C 或 C++ 标准,而只是由 Microsoft 添加来确定何时加载不同的 CRT 启动代码,对吗?
其次,WinMain 是由操作系统以类似于动态链接的方式调用的,还是只是像 main 一样的程序启动点?
我为什么要问?我主要使用 C 来编程 MCU。与软件相比,我更注重硬件,所以我喜欢 MCU,我发现它们以及为它们编程更“清晰”。
但是当我开始对C语言本身及其标准感兴趣时,我发现它很难。我的意思是,例如,在 MCU 上,您不需要 main 的 int 返回类型,而在 win32 应用程序中,您需要与纯 main 不同的启动代码。
所以,我喜欢 C,但我发现它的标准有点老了。谢谢。
最佳答案
I believe WinMain is NOT C or C++ standart, but is only added by Microsoft to determine when to load different CRT startup code, am I right?
是的。所有 C 和 C++ 标准都将 main()
(并且仅 main()
)定义为程序入口点(尽管其确切签名可能因语言和标准版本而异)。
And second, is WinMain called by OS, in a way of lets say similiar to dynamic linking, or is it just program startup point like main?
它实际上是从main()
调用的。 Windows 程序中也有一个 main()
,只是隐藏在 WinAPI 代码深处。
关于c - 几个 WinMain 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739210/