无法连结Hello World!

从一本书(编程Windows第5版)复制代码的人:

#include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ; return 0 ; } 

链接到build议使用本书的主题。 无法编译VS2010。 我究竟做错了什么?

 Error 1 error LNK2001: unresolved external symbol _WinMainCRTStartup 

谢谢。

这将取决于你如何设置项目。 在VS2010中,如果我通过File-> New-> Project,Visual C ++,Empty Project创建一个新项目,然后添加一个新的C ++文件,并复制代码,它编译和运行就好了。

如果您创建了不同类型的项目,则可能使用不同的链接库。 尝试在解决方案资源管理器中右键单击您的项目,进入属性 – >连接器 – >系统,并将子系统设置为“Windows(/ SUBSYSTEM:WINDOWS)

Win32 API是旧的,但大部分是完全可用的,如果你想做本地Windows编程。 Windows已经做了大量的工作,以确保只要你遵循文档,旧的API不会改变。 您仍然可以编译从1992年的16位Windows 3.1代码,并在32位Windows 7上运行它。

编辑:也可能是在属性 – > C / C ++ – >高级,你有省略默认库名称设置为“是”,你可能希望它设置为“否”

或者也可以将Properties-> Linker-> Input-> Ignore Default Libs设置为No.

您需要设置项目的链接器设置来创建Windows GUI程序而不是控制台程序:

  • “链接器/系统/子系统”应设置为“Windows(/ SUBSYSTEM:WINDOWS)”

通常,在创建项目并选择Windows GUI应用程序模板时,此设置将被正确设置。 不幸的是,如果项目设置为不正确的应用程序类型,设置是有点埋没(我花了一点挖掘找到它)。

确保你已经将源文件添加到项目中。 这对我有效。