链接:错误LNK2001:未解析的外部符号\u WinMainCRTStartup 我正在学习C++游戏开发,我正在读一本书,使用Win32 API,所以我试着编译我的程序。 #include <windows.h> int WINAPI WinMain(HINSTANCE hInsance,HINSTANCE hPrevInstance,PSTR cmdLine,int showCmd){ MessageBox(0,"First Win32 Program","Window Tittle",MB_OK); } #包括 int-WINAPI-WinMain(HINSTANCE-hInsance、HINSTANCE-hPrevInstance、PSTR-cmdLine、int-showCmd){ MessageBox(0,“第一个Win32程序”,“窗口标题”,MB_OK); }
我得到: 链接:错误LNK2001:未解析的外部符号\u WinMainCRTStartup链接:错误LNK2001:未解析的外部符号\u WinMainCRTStartup 我正在学习C++游戏开发,我正在读一本书,使用Win32 API,所以我试着编译我的程序。 #include <windows.h> int WINAPI WinMain(HINSTANCE hInsance,HINSTANCE hPrevInstance,PSTR cmdLine,int showCmd){ MessageBox(0,"First Win32 Program","Window Tittle",MB_OK); } #包括 int-WINAPI-WinMain(HINSTANCE-hInsance、HINSTANCE-hPrevInstance、PSTR-cmdLine、int-showCmd){ MessageBox(0,“第一个Win32程序”,“窗口标题”,MB_OK); },c++,winapi,visual-c++,C++,Winapi,Visual C++,我得到: 链接:错误LNK2001:未解析的外部符号\u WinMainCRTStartup 我是win32编程新手,所以我不知道我使用windows7时的错误在哪里(thnx:) 您可以使用/ENTRY:WinMain覆盖默认名称,也可以使用/MT进行编译,这样编译器将以链接器获取运行库(提供入口点)的方式标记对象文件 运行库入口点做了一些很好的事情,比如运行全局构造函数设置了一个全局异常处理程序,以便在出现未捕获的异常时可以获得一个对话框,但它所做的一切都不是绝对必要的 注意:如果不使用库
我是win32编程新手,所以我不知道我使用windows7时的错误在哪里(thnx:) 您可以使用
/ENTRY:WinMain
覆盖默认名称,也可以使用/MT
进行编译,这样编译器将以链接器获取运行库(提供入口点)的方式标记对象文件
运行库入口点做了一些很好的事情,比如运行全局构造函数设置了一个全局异常处理程序,以便在出现未捕获的异常时可以获得一个对话框,但它所做的一切都不是绝对必要的
注意:如果不使用库入口点,则没有可用的参数。您必须使用操作系统函数,如
GetCurrentProcess
和GetCommandLine
和GetStartupInfo
来获取通常作为WinMain
参数可用的信息。反正你也没用过。但是,在使用自己的入口点时要三思而后行,很多东西都取决于库的初始化,您最好确保没有使用它。您可以使用/entry:WinMain
覆盖默认名称,或者使用/MT
进行编译,这样编译器将以链接器获取运行库(提供入口点)的方式标记对象文件
运行库入口点做了一些很好的事情,比如运行全局构造函数设置了一个全局异常处理程序,以便在出现未捕获的异常时可以获得一个对话框,但它所做的一切都不是绝对必要的
注意:如果不使用库入口点,则没有可用的参数。您必须使用操作系统函数,如
GetCurrentProcess
和GetCommandLine
和GetStartupInfo
来获取通常作为WinMain
参数可用的信息。反正你也没用过。但是在使用自己的入口点时要三思而后行,很多东西都取决于库的初始化,你最好确定你没有使用它。你真的想看看XNA的游戏开发。对于你的第一个应用程序,让VC++IDE来完成繁重的工作。选择新项目、控制台应用程序,然后打印“Hello World”-所有默认设置都将为您设置-您真的想为游戏开发查看XNA。对于您的第一个应用程序,让VC++IDE来完成繁重的工作。选择新建项目、控制台应用程序,然后打印“Hello World”所有默认设置都会为你设置——< P>我遇到了同样的问题,当我意识到忘记添加源 时,我就解决了同样的问题,当我意识到我忘记添加源 XNA不是C++时,我就解决了,我怀疑C++游戏开发工具书使用它。对于提出的问题,本的答案描述了一个解决方案。XNA不是C++,我怀疑C++游戏开发工具使用它。对于提出的问题,本的回答描述了一个解决方案。@Rolando-请发布(并标记为答案)你自己的答案。堆栈溢出不仅仅是提问的地方,也是寻找答案的地方。-1它是链接器选项/ENTRY
,并且WinMain
没有有效的入口点签名。此外,您还需要由实际入口点函数提供的机制(如静力学初始化)WinMainCRTStartup
就是这样一个选项。@阿尔夫:更正了选项的名称,谢谢。本地静态不由入口点初始化,只初始化全局和静态类成员。最后,我坚持回答的最后一句话。您可以编写一个不需要任何初始化的程序,而只需要零填充,操作系统就是这样做的。但通常你想要图书馆的入口点,我想我的回答表达了这一点。(我确实检查过他的WinMain
没有使用任何参数,因此它是一个可行的入口点。)@Ben:入口点签名是,AFAIK,未记录的WinMain
作为入口点可以工作(参数使用垃圾值),也可以不工作。但是不要这样做,也不要给别人建议去做。这只是未定义的行为。@Rolando-请发布(并标记为答案)你自己的答案。堆栈溢出不仅仅是提问的地方,也是寻找答案的地方。-1它是链接器选项/ENTRY
,并且WinMain
没有有效的入口点签名。此外,您还需要由实际入口点函数提供的机制(如静力学初始化)WinMainCRTStartup
就是这样一个选项。@阿尔夫:更正了选项的名称,谢谢。本地静态不由入口点初始化,只初始化全局和静态类成员。最后,我坚持回答的最后一句话。您可以编写一个不需要任何初始化的程序,而只需要零填充,操作系统就是这样做的。但通常你想要图书馆的入口点,我想我的回答表达了这一点。(我确实检查过他的WinMain
没有使用任何参数,因此它是一个可行的入口点。)@Ben:入口点签名是,AFAIK,未记录的WinMain
作为入口点可以工作(参数使用垃圾值),也可以不工作。但是不要这样做,也不要给别人建议去做。这只是未定义的行为。我很倾向于否决这个问题,因为它对其他有同样问题的人没有帮助。如果您找到了解决方案,请将其作为答案发布并接受。默认情况下,您不会收到此错误。挑衅有点难。所以简单的回答是:不要做你正在做的任何事