最近开始学windows程序设计 今天用写了个小程序 没有用向导而创建的基于mfc的小程序
编译后出现三个错误
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libc.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
前两个好解决 因为vc++默认的c/c++运行期库并不支持 _beginthreadex 函数,因为标准c运行期库是
1970年左右问世的 那时候没有多线程概念 我改了设置中c/c++下Code Generation的multithreaded
就好了
但第三个一直没有解决
上网查
在project->setting,general里microsoft foundation class里选using MFC in Static library ,
并且Linkv謦T里Project Options中将/subsystem:console改成/subsystem:windows
编译通过
现在留几个网上查到的资料 备用:
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: /R矹憡7,?
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main h',?I浞
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 頂?!^縚?
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 < "r|Q?u
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex r卻杸?淬
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 卋Uぞ[T燣
儃:③鼈s?
1. Windows子系统设置错误, 提示: $瓞媺藼?
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main -`€!XujH?
-yG譏h?
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: L鳕?僋?C
词#A全孬
[Project] --> [Settings] --> 选择"Link"属性页, lv謦T卄馂
在Project Options中将/subsystem:console改成/subsystem:windows FJ菄鍚$
f??lt;?芼?
2. Console子系统设置错误, 提示: D楁 <拫u聁
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 ?檆U薭
h)&?~B芚?
控制台项目要使用Console子系统, 而不是Windows, 设置: 崮wu紇臄D?
譫敀?頺邅
[Project] --> [Settings] --> 选择"Link"属性页, 0鋳?瀍p
在Project Options中将/subsystem:windows改成/subsystem:console gz張
E?掐姙
3. 程序入口设置错误, 提示: 莧XZ?鍞
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 ?lt;.{佤4聰
>hw??p>
通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: N%鐀捰
O:l侲厓*)R
[Project] --> [Settings] --> 选择"Link"属性页, u浜?Tg?
在Category中选择Output, #棽?ug?
再在Entry-point symbol中填入wWinMainCRTStartup, 即可 €?i帇菶?
菌砈Z?定