我初学VC++,安装的是Microsoft Visual C++ 6.0 简体中文企业版,跟着孙鑫老师的VC++视频教程第3课学习,用VC++的新建->工程->MFC AppWizard[exe]->单文档,工程名:Test,不用添加任何部件和对象就创建了一个单文档窗口Test.exe。我用保存和全部保存,关闭VC++后,重新打开VC++,按文件->打开Test.cpp,按编译可以通过,按组建(F7)或者执行(Ctrl+F5),就出现下面的错误信息:--------------------Configuration: Test - Win32 Debug--------------------
Linking...
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTestDoc::classCTestDoc" (?classCTestDoc@CTestDoc@@2UCRuntimeClass@@B)
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CMainFrame::classCMainFrame" (?classCMainFrame@CMainFrame@@2UCRuntimeClass@@B)
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTestView::classCTestView" (?classCTestView@CTestView@@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/Test.exe : fatal error LNK1120: 6 unresolved externals
执行 link.exe 时出错.Test.exe - 1 error(s), 0 warning(s)我反复试过之前的几个能正常编译和组建、运行的程序,也都是出现“...1 error(s)...”提示,不知道是我操作问题还是程序问题?我将简体中文企业版删除,重新安装英文版,也是出现同样错误......。请大侠和老师指点迷津,万分感谢!
Linking...
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTestDoc::classCTestDoc" (?classCTestDoc@CTestDoc@@2UCRuntimeClass@@B)
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CMainFrame::classCMainFrame" (?classCMainFrame@CMainFrame@@2UCRuntimeClass@@B)
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTestView::classCTestView" (?classCTestView@CTestView@@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/Test.exe : fatal error LNK1120: 6 unresolved externals
执行 link.exe 时出错.Test.exe - 1 error(s), 0 warning(s)我反复试过之前的几个能正常编译和组建、运行的程序,也都是出现“...1 error(s)...”提示,不知道是我操作问题还是程序问题?我将简体中文企业版删除,重新安装英文版,也是出现同样错误......。请大侠和老师指点迷津,万分感谢!
解决方案 »
- 使用SaveAs方法实现EXCEL另存时,怎么指定保存类型
- CAsyncSocket创建监听的一些小问题请教
- DLL怎么加载DLL的lib库,比如curl
- CListCtrl::SetItemText读出数据乱码
- 关于用VS制作安装包
- 我能获得某个对象的指针后,怎么把他这个对象再复制一份(是对象不能是指针)或把对象内的内容再复制一份成为一个新对象。我程序的目的就是要能过一个文档模板来再复制一个
- 求教大牛!error C3861的问题
- 为什么取得的子控件的ID都为零呢
- PDA上循环取不到数据 请求帮助
- 使用ReadFile函数读取不上来数据怎么回事?用监控软件也显示没有数据
- 半透明控件如何实现!(不是对话框的那种)
- opengl中问题
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
---------------------
从最后一句看你的工程建错了,你选择的是Win32 console application。
上面两句的话,你选择使用MFC的库即可。最前面的错误好像是你的宏没有实现,IMPLEMENT_XXX,看看你的cpp文件中有对应的没有?
Linking...
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTestDoc::classCTestDoc" (?classCTestDoc@CTestDoc@@2UCRuntimeClass@@B)
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CMainFrame::classCMainFrame" (?classCMainFrame@CMainFrame@@2UCRuntimeClass@@B)
Test.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTestView::classCTestView" (?classCTestView@CTestView@@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/Test.exe : fatal error LNK1120: 6 unresolved externals
执行 link.exe 时出错.Test.exe - 1 error(s), 0 warning(s)
这就是我苦苦找了一整天得到的结论,用打开工程文件.dsp的方法是正确的!你可以试试!用我上面的方法,创建一个MFC单文档的工程,备份一下,然后用Test.dsp和Test.cpp分别打开进行组建(F7)和执行(Ctrl+F5),看一看是什么结果!再一次表示万分感谢!
Test.dsp 是项目文件,dsw是工作区文件,dsw下是又多个dsp组成的。
一个依赖性很强的项目,只能通过打开dsp或dsw文件来自动载入所以文件和加载配置
MFC本来就是一个框架,你打开其中一个c文件当然是不能编译的,他不知道你MFC在哪,同包含的头文件,他以为你的类都是实现的,方法都是实现的,但是一旦编译,你的配置信息不全,他找不到你在那实现的,不报错才怪了!而且vc只编译添加到配置的文件,比如你有头文件a.h,源文件,a.cpp,你在mian.cpp中包含了a.h,调用了a.h中的函数。你把a.h,a.cpp都添加到工程里,编译不会出错,但是如果你把a.cpp从项目中移除,不是删除文件,这时你编译就会出来LNK2001错误,找不到现实。谢谢rover12421大侠的帮助和指点!您不仅指明了我的错误,而且说明了我为什么错,确实难能可贵,希望今后能得到大侠的指点!
我是VC++初学者,看孙鑫老师的视频教程,也没有看VC++方面的书,出现这个错误提示后,我在网上搜索没有找到适合的解答。用Test.dsp 项目文件打开是我慢慢琢磨的,后来看了一个『Visual C++范例开发大全』上的实例,才恍然大悟,其实就应该用dsw工作区文件打开,我真是孤陋寡闻。今天看见您的回贴,更使我明白了我为什么出错,再次感谢大侠指点迷津!鱼C论坛上有高手,不仅水平高,而且肯帮助新手,是一个不错的论坛!