c++

统计

留言簿(1)

犬夜叉

阅读排行榜

评论排行榜

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?定  




posted on 2006-07-04 00:57 新的一天 阅读(365) 评论(2)  编辑 收藏 引用

评论

# re: 2006年7月4日 2006-08-16 17:05 aaa

Creating library ReleaseMinDependency/Agent.lib and object ReleaseMinDependency/Agent.exp
LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
ReleaseMinDependency/Agent.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

打开工程的设置,在C/C++页中Proprocess Definitions中去掉_ATL_MIN_CRT即可
  回复  更多评论   

# re: 2006年7月4日 2006-10-26 11:18 view

Thank you!!!  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理