我利用VC6.0编写C和C++语言程序还是成功的。但是编写MFC遇到麻烦,在编写一个画硬币程序时编译已经通过,连接时出现错误:
error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/DrawcoinView.exe : fatal error LNK1120: 3 unresolved externals
执行 link.exe 时出错.DrawcoinView.exe - 1 error(s), 0 warning(s)
我从网上搜到答案
1:Windows子系统设置错误, 提示: o3y,zfM
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main DJ;'^
\jRT'RR
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: bsm'W?(
SPK{S*!"
[Project] --> [Settings] --> 选择"Link"属性页, SMr`N6Bi-
在Project Options中将/subsystem:console改成/subsystem:windows {,$_K&_
T^[;$y
2. Console子系统设置错误, 提示: W.Xc^$e
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main DJ;'^
\jRT'RR
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: bsm'W?(
SPK{S*!"
[Project] --> [Settings] --> 选择"Link"属性页, SMr`N6Bi-
在Project Options中将/subsystem:console改成/subsystem:windows {,$_K&_
我用的中文版VC6。0,我觉得得工程选项[工程]——[设置]——[资源]中才有工程选项l 0x804 /d "_DEBUG"T^[;$y
反正我不知道怎么弄,越弄越乱,结果原来编译连接成功的MFC程序现在连接也出了问题。比如一个My Diague程序非常简单连接时也出现错误
MyDialog.obj : error LNK2001: unresolved external symbol "public: __thiscall CMyDialogDlg::CMyDialogDlg(class CWnd *)" (??0CMyDialogDlg@@QAE@PAVCWnd@@@Z)
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MyDialog.exe : fatal error LNK1120: 4 unresolved externals
执行 link.exe 时出错.MyDialog.exe - 1 error(s), 0 warning(s)
反正现在所有MFC程序连接时都出问题。我不知道知道怎么办。请大家指点。
error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/DrawcoinView.exe : fatal error LNK1120: 3 unresolved externals
执行 link.exe 时出错.DrawcoinView.exe - 1 error(s), 0 warning(s)
我从网上搜到答案
1:Windows子系统设置错误, 提示: o3y,zfM
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main DJ;'^
\jRT'RR
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: bsm'W?(
SPK{S*!"
[Project] --> [Settings] --> 选择"Link"属性页, SMr`N6Bi-
在Project Options中将/subsystem:console改成/subsystem:windows {,$_K&_
T^[;$y
2. Console子系统设置错误, 提示: W.Xc^$e
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main DJ;'^
\jRT'RR
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: bsm'W?(
SPK{S*!"
[Project] --> [Settings] --> 选择"Link"属性页, SMr`N6Bi-
在Project Options中将/subsystem:console改成/subsystem:windows {,$_K&_
我用的中文版VC6。0,我觉得得工程选项[工程]——[设置]——[资源]中才有工程选项l 0x804 /d "_DEBUG"T^[;$y
反正我不知道怎么弄,越弄越乱,结果原来编译连接成功的MFC程序现在连接也出了问题。比如一个My Diague程序非常简单连接时也出现错误
MyDialog.obj : error LNK2001: unresolved external symbol "public: __thiscall CMyDialogDlg::CMyDialogDlg(class CWnd *)" (??0CMyDialogDlg@@QAE@PAVCWnd@@@Z)
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MyDialog.exe : fatal error LNK1120: 4 unresolved externals
执行 link.exe 时出错.MyDialog.exe - 1 error(s), 0 warning(s)
反正现在所有MFC程序连接时都出问题。我不知道知道怎么办。请大家指点。
解决方案 »
- Opengl中拾取遇到问题,很急 请大家帮帮忙看看是怎么回事,先谢了
- MSWinsock.Winsock与MSWinsock.Winsock.1有什么本质区别呢?
- #define S(x,i) (bf_S[i][x.w.byte##i]) 怎么解释。。。。
- 散分: 我也宣传一下我写的小软件 - CookExif 1.0
- 一个编译问题
- 请问如何判断一个字符串是否全是数字字符?
- 学VC都应该学些什么呢?
- 求购用VC编程的 小型gis平台!!!!!
- 请各位看看我可以找什么工作
- 如何将一个给定区域rect中用GDI画出来的图像转成bmp保存起来?
- 已知三维图形的坐标如何转换到二维平面上显示,坐标如何转换?
- 资源文件中的MOVEABLE PURE与DISCARDABLE有什么差别?
出现main是由于你使用了控制台。
出现main是由于你使用了控制台。
而,DLL里面没有用!
你查查是不是!
Drawcoin.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CDrawcoinDoc::classCDrawcoinDoc" (?classCDrawcoinDoc@CDrawcoinDoc@@2UCRuntimeClass@@B)
Drawcoin.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CMainFrame::classCMainFrame" (?classCMainFrame@CMainFrame@@2UCRuntimeClass@@B)
Drawcoin.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CDrawcoinView::classCDrawcoinView" (?classCDrawcoinView@CDrawcoinView@@2UCRuntimeClass@@B)
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Drawcoin.exe : fatal error LNK1120: 6 unresolved externals
执行 link.exe 时出错.Drawcoin.exe - 1 error(s), 0 warning(s)
我想了一个办法,要不要重装VC,如重装的话,原有好多程序是否全部抹掉.
2.打开project->settings->general->microsoft foundation classes->
选use MFC in a static library
或选 use MFC in a shared DLL(需要把MFC的动态库放在system32文件夹下) .
msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Debug/DrawcoinView.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.DrawcoinView.exe - 1 error(s), 0 warning(s)
stdafx头文件不能包含到工程中,工程好象没有动态库
msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Debug/DrawcoinView.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.DrawcoinView.exe - 1 error(s), 0 warning(s)
stdafx头文件不能包含到工程中,工程好象没有动态库
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex 后来试了下:
2.打开project->settings->general->microsoft foundation classes->
选use MFC in a static library 结果就成功了!以前在MFC中调用AfxBeginThread不用此操作,难倒AfxBeginThread只在MFC的库中?
正解,也即12楼说的多线程
project
settings
c/c++页
category->code generation && use run-time library->Debug Multithreaded
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763104c8c711923d030678197027fa3c215cc7905061a27b8f07a7e4519839b21321cf40f0bb5ed3222320070e790ce8a1adebd94792c8c7135734c834314d80eafbc1c639e7e841fb4ef4fe8fea12592ded6c4de2444ca24127bf0f29c5b7003ba6ce76333f4d0995f622f07bb9d27148b4e015d885341a13688&p=917dcf129f904ea408e292745453&user=baidu -----------------------------------
那里边说的很清楚啊,怎么会看不懂呢?你只要照着他说的设置就可以啊。
就是下边这段内容以及加图的部分啊,图都给出来了,应该很好理解的哈。
***************************************************
【解决办法】编译器设置步骤如下: 工程 → 属性 → C/C++ → 分类:Code Generation → Use run-time library debug下选择debug multithreadedrelease下选择multithreaded。注意红色标记的处的变化。
*************************************************** 剩下的就是你工程的问题了,看你代码好像是要建立Windows应用程序,但是你没有对应的入口函数,类似main函数(应该叫WinMain,我记不清了)。这个我就帮不了你了,因为我不知道你是怎么建立的工程。
来源http://zhidao.baidu.com/question/133922370.html