从一本书(编程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 GUI应用程序模板时,此设置将被正确设置。 不幸的是,如果项目设置为不正确的应用程序类型,设置是有点埋没(我花了一点挖掘找到它)。
确保你已经将源文件添加到项目中。 这对我有效。