我目前正在开发Windows 10的控制台应用程序,我想知道main()入口点应该是什么。
在Jeffrey Richter和Christophe Nasarre的“Windows via C / C ++”(2007年)第69页中,它指出:
您的Windows应用程序必须具有入口点功能...作为C / C ++开发人员,您可以使用两种可能的入口点功能:
int WINAPI _tWinMain(HINSTANCE hInstanceExe, HINSTANCE, PTSTR pszCmdLine, int nCmdShow); int _tmain(int argv, TCHAR *argv[], TCHAR *envp[]);
本书接着确定这两个入口点实际上是由编译器映射到不同的入口点,具体取决于应用程序是GUI还是Console,以及是否使用了Unicode。
我想使用Unicode的Win32控制台应用程序的正确入口点,所以我假设(?),我想要_tmain版本,但是当我在Visual Studio 2015 Community Edition中打开一个新项目并选择“ “Win32控制台应用程序”,然后选择“控制台应用程序”,我最终得到了main(),就像我习惯在Linux下一样:
int main()
我应该使用哪个入口点?
答案 0 :(得分:-2)
第一个入口点(或变体)通常用于GUI过程:
int WINAPI _tWinMain(HINSTANCE hInstanceExe, HINSTANCE, PTSTR pszCmdLine, int nCmdShow);
第二个入口点(或变体)通常用于命令行过程:
int _tmain(int argv, TCHAR *argv[], TCHAR *envp[]);
使用/ ENTRY链接器选项设置入口点。 Visual Studio在您创建GUI /控制台项目时为您设置此项,并且通常您不需要更改它。请参阅:https://msdn.microsoft.com/en-us/library/f9t8842e.aspx
使用tchar.h时,通常会使用_T前缀。这允许应用程序(理论上)可以轻松编译为“Ansi”或Unicode。您可以在之前的答案中阅读更多相关信息: