extern int main(int argc, char* argv[]) use?



我一直在阅读SFML的源代码。我发现了它以这样的方式包装win32的方式:

#ifdef _WIN32 //something like that
#include <windows.h>
extern int main(int argc, char* argv[]);
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT)
{
return main(__argc, __argv);
}
#endif

所以CCD_ 1我看到了这个典型的win32程序条目。但是extern mainreturn main(__argc, __argv)在做什么?

带下划线的__argc是什么?

在我自己的主函数中,在加载SFML之后,我只需要编写int main()

我很好奇这在编写跨平台代码方面是如何工作的。(我在win32代码中使用了同样的方式,它成功了!!有人能解释一下这背后的魔力吗??(

extern mainreturn main(__argc, __argv)在做什么?

如果您在windows平台上编译,SFML会为您定义WinMain入口点,并使用__argcline 40调用main(int argc, char* argv[]),相关文档对此进行了解释:

__argc全局变量是命令行数量的计数传递给程序的参数。__argv是指向包含程序参数。

SFML做到了这一点,使开发人员即使在Win32应用程序项目中也可以使用标准的主函数,从而保留可移植的代码。SFML/MainWin32.cpp中的注释对此进行了解释。

相关内容

  • 没有找到相关文章

最新更新