Visual C++ 6.0常见编译错误信息

Visual C++ 6.0常见编译错误信息
1、fatal error C1010: unexpected end of file while looking for
precompiled header directive。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有
#include "stdafx.h")
2、fatal error C1083: Cannot open include file: 'R…….h': No
such file or directory
不能打开包含文件“R…….h”:没有这样的文件或目录。
3、error C2011: 'C……': 'class' type redefinition
类“C……”重定义。
4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。(一般是汉字或中文标点符号)
5、error C2057: expected constant expression
希望是常量表达式。(一般出现在switch语句的case分支中)
6、error C2065: 'I……' : undeclared identifier
“I……”:未声明过的标识符。
7、error C2082: redefinition of formal parameter 'b……'
函数参数“b……”在函数体中重定义。
8、error C2143: syntax error: missing ':' before '{'
语法错误:“{”前缺少“;”。
9、error C2146: syntax error : missing ';' before identifier
'dc'
语法错误:在“dc”前丢了“;”。
10、error C2196: case value '69' already used
值69已经用过。(一般出现在switch语句的case分支中)
11、error C2509: 'OnTimer' : member function not declared in
'CHelloView'
成员函数“OnTimer”没有在“CHelloView”中声明。
12、error C2511: 'reset': overloaded member function 'void
(int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。
13、error C2555: 'B::f1': overriding virtual function differs
from 'A::f1' only by return type or calling convention
类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。
14、error C2660: 'SetTimer' : function does not take 2
parameters
“SetTimer”函数不传递2个参数。
15、warning C4035: 'f……': no return value
“f……”的return语句没有返回值。
16、warning C4553: '= =' : operator has no effect; did you
intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having
been initialized
局部变量“bReset”没有初始化就使用。
18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。
19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for
writing
连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还
在运行,未关闭)
20、error LNK2001: unresolved external symbol "public: virtual
_ _thiscall C……::~C……(void)"
连接时发现没有实现的外部符号(变量、函数等)。

合集下载

VC6.0编译错误解决方法集锦

VC6.0编译错误解决方法集锦

VC6.0编译错误解决方法集锦windows编程2010-05-08 21:14:39 阅读83 评论0 字号:大中小订阅VC6.0编译错误解决方法集锦最近打算学习一下网络编程,而大部分socket编程环境都是Unix的,很是不便,在windows中总是不能编译,特寻得一篇文章解决此痒。

爽哉、爽哉!linking... server.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbolserver.obj : error lnk2001: unresolved external symbol原因和解决办法:找不到相应函数,问题是Link选项里没有加入相应的lib库,winsock要连接wsock32.lib。

VC6.0编译常见错误的详解及其错误分析(范文)

VC6.0编译常见错误的详解及其错误分析(范文)

VC6.0编译常见错误的详解及其错误分析(范文)第一篇:VC6.0编译常见错误的详解及其错误分析(范文)VC6.0编译常见错误第一部分编译错误1. error C2001: newline in constant编号:C2001直译:在常量中出现了换行。

错误分析:(1)字符串常量、字符常量中是否有换行。

(2)在这句语句中,某个字符串常量的尾部是否漏掉了双引号。

(3)在这语句中,某个字符创常量中是否出现了双引号字符““”,但是没有使用转义符“””。

(4)在这句语句中,某个字符常量的尾部是否漏掉了单引号。

(5)是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。

2. error C2015: too many characters in constant编号:C2015直译:字符常量中的字符太多了。

错误分析:单引号表示字符型常量。

一般的,单引号中必须有,也只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。

另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如:if(x == 'x || x == 'y'){ … }值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。

两个单引号之间不加任何内容会引发如下错误:error C2137:empty characterconstant。

3. error C2018: unknown character '0x##'编号:C2018直译:未知字符‘0x##’。

错误分析:0x##是字符ASC码的16进制表示法。

这里说的未知字符,通常是指全角符号、字母、数字,或者直接输入了汉字。

如果全角字符和汉字用双引号包含起来,则成为字符串常量的一部分,是不会引发这个错误的。

VC6.0的路径错误解决

VC6.0的路径错误解决

VC6.0的路径设置错误而导致无法编译成功1.提示错误:Compiling... ,Error spawning cl.exe2.提示错误:fatal error C1083: Cannot open include file: 'FlowItem\flowchart.h': No such file or directory解决办法一:打开vc界面点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。

下面是参考路径(如果是装在D盘的,Microsoft Visual Studio之后的路径要注意)executatble files:C:\Program Files\Microsoft Visual Studio\Common\MSDev98\BinC:\Program Files\Microsoft Visual Studio\VC98\BINC:\Program Files\Microsoft Visual Studio\Common\TOOLSC:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNTinclude files:C:\Program Files\Microsoft Visual Studio\VC98\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDElibrary files:C:\Program Files\Microsoft Visual Studio\VC98\LIBC:\Program Files\Microsoft Visual Studio\VC98\MFC\LIBsource files:C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRCC:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC解决方法二:卸载vc6.0,然后在C盘装上,上面的路径是默认的,如果你装在C盘,就不会有路径的问题。

VC中常见的一些编译链接错误的解决

VC中常见的一些编译链接错误的解决

VC中常见的一些编译链接错误的解决VC中常见的一些编译链接错误的解决2010-03-22 15:59问题1:Linking...nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadexlibcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main答VC++默认的工程设置是单线程的,而你使用了多线程,所以要修改设置。

选择菜单“Project|settings”,选择C/C++标签,在CODEGENERATION分类中选择除SINGLE-THREADED的其他选择。

比如可以在Use run-time library中选择Debug Multithreaded 或者multithreaded其中,Single-Threaded 单线程静态链接库(release版本) Multithreaded 多线程静态链接库(release版本) multithreaded DLL 多线程动态链接库(release版本)Debug Single-Threaded 单线程静态链接库(debug版本)Debug Multithreaded 多线程静态链接库(debug版本)Debug Multithreaded DLL 多线程动态链接库(debug版本)单线程: 不需要多线程调用时, 多用在DOS环境下多线程: 可以并发运行静态库: 直接将库与程序Link, 可以脱离MFC库运行动态库: 需要相应的DLL动态库, 程序才能运行release版本: 正式发布时使用debug版本: 调试阶段使用问题2fatal error C1010: unexpected end of file while looking for precompiled header directive该如何解如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的Settings,选择C/C++选项卡,从Category组合框中选中Precompiled Headers,选择Not Using Precompiledheaders。

VC错误代码

VC错误代码

VC++6.0常见编译错误中英文对照表fatal error C1003: error count exceeds number; stopping compilation中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译fatal error C1004: unexpected end of file found中文对照:(编译错误)文件未结束分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/”不完整等fatal error C1083: Cannot open include file: 'xxx': No such file or directory 中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径分析:头文件不存在、或者头文件拼写错误、或者文件为只读fatal error C1903: unable to recover from previous error(s); stopping compilation 中文对照:(编译错误)无法从之前的错误中恢复,停止编译分析:引起错误的原因很多,建议先修改之前的错误error C2001: newline in constant中文对照:(编译错误)常量中创建新行分析:字符串常量多行书写error C2006: #include expected a filename, found 'identifier'中文对照:(编译错误)#include命令中需要文件名分析:一般是头文件未用一对双引号或尖括号括起来,例如“#include stdio.h”error C2007: #define syntax中文对照:(编译错误)#define语法错误分析:例如“#define”后缺少宏名,例如“#define”error C2008: 'xxx' : unexpected in macro definition中文对照:(编译错误)宏定义时出现了意外的xxx分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE"1"”error C2009: reuse of macro formal 'identifier'中文对照:(编译错误)带参宏的形式参数重复使用分析:宏定义如有参数不能重名,例如“#define s(a,a) (a*a)”中参数a重复error C2010: 'character' : unexpected in macro formal parameter list中文对照:(编译错误)带参宏的形式参数表中出现未知字符分析:例如“#define s(r|) r*r”中参数多了一个字符‘|’error C2014: preprocessor command must start as first nonwhite space中文对照:(编译错误)预处理命令前面只允许空格分析:每一条预处理命令都应独占一行,不应出现其他非空格字符error C2015: too many characters in constant中文对照:(编译错误)常量中包含多个字符分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符,例如“char error = 'error';”error C2017: illegal escape sequence中文对照:(编译错误)转义字符非法分析:一般是转义字符位于 ' ' 或 " " 之外,例如“char error = ' '\n;”error C2018: unknown character '0xhh'中文对照:(编译错误)未知的字符0xhh分析:一般是输入了中文标点符号,例如“char error = 'E';”中“;”为中文标点符号error C2019: expected preprocessor directive, found 'character'中文对照:(编译错误)期待预处理命令,但有无效字符分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!define TRUE 1”error C2021: expected exponent value, not 'character'中文对照:(编译错误)期待指数值,不能是字符分析:一般是浮点数的指数表示形式有误,例如123.456Eerror C2039: 'identifier1' : is not a member of 'identifier2'中文对照:(编译错误)标识符1不是标识符2的成员分析:程序错误地调用或引用结构体、共用体、类的成员error C2041: illegal digit 'x' for base 'n'中文对照:(编译错误)对于n进制来说数字x非法分析:一般是八进制或十六进制数表示错误,例如“int i = 081;”语句中数字‘8’不是八进制的基数error C2048: more than one default中文对照:(编译错误)default语句多于一个分析:switch语句中只能有一个default,删去多余的defaulterror C2050: switch expression not integral中文对照:(编译错误)switch表达式不是整型的分析:switch表达式必须是整型(或字符型),例如“switch ("a")”中表达式为字符串,这是非法的error C2051: case expression not constant中文对照:(编译错误)case表达式不是常量分析:case表达式应为常量表达式,例如“case "a"”中“"a"”为字符串,这是非法的error C2052: 'type' : illegal type for case expression中文对照:(编译错误)case表达式类型非法分析:case表达式必须是一个整型常量(包括字符型)error C2057: expected constant expression中文对照:(编译错误)期待常量表达式分析:一般是定义数组时数组长度为变量,例如“int n=10; int a[n];”中n为变量,这是非法的error C2058: constant expression is not integral中文对照:(编译错误)常量表达式不是整数分析:一般是定义数组时数组长度不是整型常量error C2059: syntax error : 'xxx'中文对照:(编译错误)‘xxx’语法错误分析:引起错误的原因很多,可能多加或少加了符号xxxerror C2064: term does not evaluate to a function中文对照:(编译错误)无法识别函数语言分析:1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确2、变量与函数重名或该标识符不是函数,例如“int i,j; j=i();”中i不是函数error C2065: 'xxx' : undeclared identifier中文对照:(编译错误)未定义的标识符xxx分析:1、如果xxx为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。

关于VC6.0错误的解决方法

关于VC6.0错误的解决方法

关于Error spawning cl.exe错误可能很多人在安装VC 6.0后运行VC 6.0编译后会出现“Error spawning cl.exe”的错误,开始的时候我认为是WIN7不兼容,试着用XP系统运行结果还是出现一样的错误。

在网上查阅很多资料以后发现是由于路径设置的问题。

解决方法如下:打开vc界面点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。

很多情况可能就一个盘符的不同(例如你的VC装在C,但是这些路径全部在D)。

如果你是按照初始路径安装vc6.0的,路径应为:executatble files:C:\Program Files\Microsoft Visual Studio\Common\MSDev98\BinC:\Program Files\Microsoft Visual Studio\VC98\BINC:\Program Files\Microsoft Visual Studio\Common\TOOLSC:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNTinclude files:C:\Program Files\Microsoft Visual Studio\VC98\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDElibrary files:C:\Program Files\Microsoft Visual Studio\VC98\LIBC:\Program Files\Microsoft Visual Studio\VC98\MFC\LIBsource files:C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRCC:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC用此类方法成功解决了班上几个同学的VC 6.0。

VC++6.0在win7下的安装方法以及因为在其他位置安装过VC++6.0而导致的编译错误解决办法(整理)

确实,想在Windows7或者Vista下使用这个,古老但是经典的Visual C++ 6.0 编程工具,是比较麻烦的,但偶因为专业的缘故又不得不使用Visual C++ 6.0 ,于是开始慢慢探索解决的方法。

一开始在Win7下用Visual C++编程我是用的Vmware里运行XP,然后再在虚拟XP里安装Visual C++ 6.0实现的,但是用久了就发现了问题,虚拟机里用Visual C++ 6.0编译才几次,VC6就“崩溃”了,要用任务管理器强行终止!但是一学期快过去了,经过长久的探索与Google,本人终于实现了,在Windows7下直接安装Visual C++ 6.0,并且在Win7的“标准用户”环境下完成了一个C语言的链表编译运行!(由于有1100多字就不列出来了,下面会给大家看看一个简单的程序编写效果的截图)。

虽然有些古怪兼容性的提示,但是偶发现在Win7下用Visual C++ 6.0 竟然比XP还要稳定。

我是有感受的——在XP(物理机下——就是你平常直接使用电脑)下用VC6对一个C程序反复的编译,即使程序是对的,编译不了15下,VC6就“崩溃”了,但是在Win7下对一个C程序反复的编译,即使程序是错的,就是编译25次,VC6也不会“崩溃”。

不扯谈了,下面步入正题。

在Windows7下安装或者使用Visual C++ 6.0要注意三大点。

1.在安装或者使用Visual C++ 6.0时,凡是出现兼容性问题提示对话框,一律按以下方式处理——把“不再显示此消息”打上勾,然后选择“运行程序”。

不要怕,本人亲自验证过没有任何“副作用”。

2.在安装VC的时候,选择“custom(自定义安装)”:接下来就要,注意了——不要选择TOOLS里面的OLE/COM OBJECT VIEWER工具,就可以顺利安装,另外,这个只是个查看工具,不会影响VC++的编译,所以大家以后可以尽情得使用vista和win7啦,不用再担心兼容性的问题。

VisualBasic 6.0常见错误及解决方案


解决方案 ⑴ 关闭不需要的应用程序、文档或资源文件。 ⑵ 将庞大的模块或过程分成几个。 虽然这样不能节省内存空间, 但可避免 64K 段边界 限制。 ⑶ 按增强方式重新启动 Microsoft Windows 。 ⑷ 空出一些磁盘空间以增加虚拟内存,或至少确保有空馀的空间。 ⑸ 减少一些驻留程序。 ⑹ 减少一些不需要的设备驱动程序。 ⑺ 减少 Public 变量的数量。 4. 下标越界(错误 9) 错误原因 只能在定义的范围内访问数组元素和集合成员。
错误分析 ⑴ 引用了不存在的数组元素。 ⑵ 声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:
2
Dim MyArray() As Integer MyArray(8) = 234 ' 导致错误 9。 ⑶ 引用了不存在的集合成员。 ⑷ 使用速写形式的下标,结果指定了错误的元素。 解决方案 ⑴ 下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查 数组的声明以确认其上界和下界。 若使用的是重新指定范围的数组, 应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。 ⑵ Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。 ⑶ 试着使用 For Each...Next 结构代替指定元素下标。 ⑷ 例如, 当在集合上使用 ! 运算子时, ! 自动指定了一个键。 例如 object!keyname.value 和 object.item(keyname).value 是一样的。在此例中,集合中如果 keyname 表示一 个错误键,错误就会产生。若要改进此错误,在集合对象中使用正确的键名称或索 引。 5. 数组长度固定或临时被锁定(错误 10) 错误原因 并非所有数组都可重设大小。即使数组声明成动态,或者数组是在 Variant 变量中, 也会被临时锁定。 错误分析 ⑴ 使用 ReDim 来改变固定大小数组的元素数。 例如, 在下列的代码中, 在 NextOne 过 程中 SomeArr 接收了固定大小的数组 FixedArr , 然后试图调整 SomeArr 的大小: Sub FirstOne Dim FixedArr(25) As Integer NextOne FixedArr() End Sub Sub NextOne(SomeArr() As Integer) ReDim SomeArr(35) ... End Sub ⑵ 对模块层次动态数组,要重新确定大小,而某一个元素已经作为参数传给了过程。 例如,在下列的代码中,ModArray 是模块层次动态数组,却将其第 56 个元素以按 引用传给 Test 过程:

VC6.0 error LNK2001 unresolved external symbol _main解决办法

VC6.0 error LNK2001: unresolved external symbol _main解决办法学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。

产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。

如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。

初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:unresolved external symbol “symbol”(不确定的外部“符号”)。

如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。

一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本的连接库。

以下是可能产生LNK2001错误的原因:一.由于编码错误导致的LNK20011.不相匹配的程序代码或模块定义(.DEF)文件能导致LNK2001。

例如, 如果在C++源文件内声明了一变量“var1”,却试图在另一文件内以变量“VAR1”访问该变量,将发生该错误。

2.如果使用的内联函数是在.CPP文件内定义的,而不是在头文件内定义将导致LNK2001错误。

3.调用函数时如果所用的参数类型同函数声明时的类型不符将会产生LNK2001。

4.试图从基类的构造函数或析构函数中调用虚拟函数时将会导致LNK2001。

5.要注意函数和变量的可公用性,只有全局变量、函数是可公用的。

静态函数和静态变量具有相同的使用范围限制。

当试图从文件外部访问任何没有在该文件内声明的静态变量时将导致编译错误或LNK2001。

函数内声明的变量(局部变量) 只能在该函数的范围内使用。

C++ 的全局常量只有静态连接性能。

这不同于C,如果试图在C++的多个文件内使用全局变量也会产生LNK2001错误。

visualstudio6.0link2001常见错误解决总结

visualstudio6.0link2001常见错误解决总结第一篇:visual studio 6.0 link 2001常见错误解决总结visual studio 6.0 link 2001常见错误解决总结第一:nafxcwd.lib(appcore.obj): error LNK2001: unresolved external symbol ___argvnafxcwd.lib(appcore.obj): error LNK2001: unresolved external symbol ___argcnafxcwd.lib(timecore.obj): error LNK2001: unresolved external symbol __mbctypenafxcwd.lib(apphelp.obj): error LNK2001: unresolved external symbol __mbctypenafxcwd.lib(filelist.obj): error LNK2001: unresolved external symbol __mbctype解决办法:PROJECT->SETING->C/C++->PREPROCESSOR->定义_AFXDLL第二:解决外部符号错误:_main,_WinMain@16,__beginthreadex在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:libcmtd.lib(crt0.obj): error LNK2001: unresolved external symbol _mainLIBCD.lib(wincrt0.obj): error LNK2001: unresolved external symbol _WinMain@161.Windows子系统设置错误, 提示:libcmtd.lib(crt0.obj): error LNK2001: unresolved external symbol _mainWindows项目要使用Windows子系统, 而不是Console, 可以这样设置:[Project]--> [Settings]--> 选择“Link”属性页,在Project Options中将/subsystem:console改成/subsystem:windows2.Console子系统设置错误, 提示:LIBCD.lib(wincrt0.obj): error LNK2001: unresolved external symbol _WinMain@16控制台项目要使用Console子系统, 而不是Windows, 设置:[Project]--> [Settings]--> 选择“Link”属性页,在Project Options中将/subsystem:windows改成/subsystem:console3.程序入口设置错误, 提示:msvcrtd.lib(crtexew.obj): error LNK2001: unresolved external symbol _WinMain@16通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:[Project]--> [Settings]--> 选择“Link”属性页,在Category中选择Output,再在Entry-point symbol中填入wWinMainCRTStartup, 即可4.线程运行时库设置错误, 提示:nafxcwd.lib(thrdcore.obj): error LNK2001: unresolved external symbol __beginthreadexnafxcwd.lib(thrdcore.obj): error LNK2001: unresolved external symbol __endthreadex 这是因为MFC要使用多线程时库, 需要更改设置:[Project]--> [Settings]--> 选择“C/C++”属性页,在Category 中选择Code Generation,再在Use run-time library中选择Debug Multithreaded或者multithreaded其中,Single-Threaded 单线程静态链接库(release版本)Multithreaded 多线程静态链接库(release版本)multithreaded DLL 多线程动态链接库(release版本)Debug Single-Threaded 单线程静态链接库(debug版本)Debug Multithreaded 多线程静态链接库(debug版本)Debug Multithreaded DLL 多线程动态链接库(debug版本)单线程: 不需要多线程调用时, 多用在DOS环境下多线程: 可以并发运行静态库: 直接将库与程序Link, 可以脱离MFC库运行动态库: 需要相应的DLL动态库, 程序才能运行release版本: 正式发布时使用debug版本: 调试阶段使用初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:unresolved external symbol “symbol”(不确定的外部“符号”)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档