【转自】:http://hi.baidu.com/kensonwang/blog/item/b13784fd726c1d40d7887d0a.html
今天为了学习一个MFC程序打算将书本上的例子打出来编译一遍,结果编译时出现了fatal error LNK1561: 必须定义入口这个错误,经过一个早上的研究终于解决了。
一开始我用VS2005新建了一个VC++的项目,然后把编辑好的.h文件与.cpp文件添加到空项目中,当编译时首先出现了第一个错误:fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]。即刻与原项目进行一次比较,发现项目设置有所不同,则将常规->项目默认值->MFC的使用设置为“在共享DLL中使用MFC”,设置确定后再进行编译,error C1189错误消除了。同时出现了error LNK1561错误,上网找了一阵,无果。然后,新建了一个Win32的项目,将编辑好的文件添加至项目中,编译则出现C1189错误,对项目设置修改后编译通过。我则将第一个空项目与Win32项目的项目设置进行比对,发现链接器->高级->入口点中win32项目中有“wWinMainCRTStartup”的值,则将该值添加到空项目的设置中,依然报错。实在无法之时,我将“wWinMainCRTStartup”改为“WinMainCRTStartup”后编译通过了。