2006年7月4日

2006年7月4日

最近开始学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?定  




你可能感兴趣的:(2006年7月4日)