C语言中的常见错误

合集下载

C语言常见错误解析

C语言常见错误解析

C语言常见错误解析:1)编译错误和运行错误:1,选择编辑的文件类型不是C语言。

如:文件扩展名不是.cpp, 而是.asp等。

重做。

错误提示:解析:编辑区上方的文件名的扩展名为:.asp是网站文件, 不是正常的.cpp文件。

当然编译菜单为灰色,无法编译。

2,做完一个程序后,没有关闭工作区,继续做下一个程序,编译系统无法确定编译多个主函数中的哪一个。

关闭工作区后,重做(这时,可使用复制粘贴方法)。

错误提示:解析:左边看出,有两个main()函数,原来的是t.cpp(工程名也是t), 现在的是li.cpp,可以编译,但不能运行。

每次运行的都是原来的程序t.exe.同时,可以看到,编译的主文件名li.cpp,与构件的文件名t.exe不相同。

3,编译系统本身故障。

编译菜单呈灰色,无法编译,按下ctl+alt+del三个键,在任务工作区,强制关闭VC,重新启动。

错误提示:略改正方法:按照正确的流程创建C语言源程序文件。

2)宏定义错误:引发语法错误错误原因:1,位置错误,宏定义错误放入函数内部;应在所有函数的前面。

错误提示:解析:遇到define,标志符出现错误,没有定义。

与函数体的语句定义格式不符。

2,缺少宏定义标志符“#”;错误提示:define pi 3.1415927解析:引起三个错误。

3,宏定义后面多加了分号“;”,误认为是语句;错误提示:语句,定义#define pi 3.1415927; 使用宏定义area=2*pi*banjing*banjing;解析:非法间接使用。

4,宏定义中库函数名错误:如sdtil.h, maths.h等错误提示:解析:不能打开stido.h文件,单引号中标志符’stido.h’错误。

5,宏定义中库函数引用标志错误:应使用一对尖括号或一对双引号<>或”“,不用函数标志圆括号( )错误提示:解析:#include中单引号中左圆括号‘(’使用错误,两函数没有定义。

C语言编程最常见的15个错误

C语言编程最常见的15个错误

C语言编程最常见的15个错误C语言是一种结构化语言。

它层次清晰,便于按模块化方式组织程序,易于调试和维护。

以下是关于C语言编程最常见的15个错误,希望大家认真阅读!1.书写标识符时,忽略了大小写字母的区别。

main(){ int a=5;printf("%d",A); }编译程序把a和A认为是两个不同的变量名,而显示出错信息。

C认为大写字母和小写字母是两个不同的字符。

习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2.忽略了变量的类型,进行了不合法的运算。

main(){ float a,b;printf("%d",a%b); }%是求余运算,得到a/b的整余数。

整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。

3.将字符常量与字符串常量混淆。

char c;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。

C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\',而把它赋给一个字符变量是不行的。

4.忽略了“=”与“==”的区别。

在许多高级语言中,用“=”符号作为关系运算符“等于”。

如在BASIC 程序中可以写if (a=3) then …但C语言中,“=”是赋值运算符,“==”是关系运算符。

如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。

由于习惯问题,初学者往往会犯这样的错误。

5.忘记加分号。

分号是C语句中不可缺少的一部分,语句末尾必须有分号。

a=1b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。

改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。

C语言常见错误分析

C语言常见错误分析

C语言常见错误分析C语言是一门非常强大和灵活的编程语言。

然而,由于人为的错误或者语法错误,程序在编译或者运行的过程中常常会出现错误。

下面是常见的C语言错误以及它们的分析。

1.语法错误:语法错误是最常见的错误类型,也是最容易修复的错误。

它们包括缺少分号、括号不匹配、使用未定义的变量等。

这些错误通常会导致编译器的语法错误提示。

2.类型错误:类型错误是由于变量类型不匹配或者操作符错误而引起的。

例如,使用一个整数变量来存储浮点数值,或者将一个指针赋值给一个非指针类型的变量。

这些错误可能导致错误的计算结果或者报错。

3.逻辑错误:逻辑错误是程序的逻辑结构有误,导致程序无法正确执行。

这种错误通常不能通过编译器检测出来,而需要开发人员通过调试来找到并修复。

例如,程序的循环条件错误导致无限循环,或者条件判断错误导致程序走入错误的分支。

4.数组越界错误:数组越界错误是指访问数组时超出了数组的有效范围。

这种错误通常导致程序崩溃或者产生不可预测的结果。

例如,访问数组元素时使用了一个超过数组长度的下标。

为了避免这种错误,开发人员应该始终确保数组下标在有效范围内。

5.空指针错误:空指针错误是指使用了一个未初始化或者已经释放的指针。

这种错误通常导致程序崩溃或者产生不可预测的结果。

为了避免空指针错误,开发人员应该在使用指针之前初始化,并且在使用完毕后及时释放。

6.内存泄漏:内存泄漏是指程序在分配内存之后没有释放,导致系统中的可用内存越来越少。

如果内存泄漏严重,最终可能会导致程序崩溃或者系统变慢。

为了避免内存泄漏,开发人员应该始终确保在不再需要内存时及时释放。

7.死循环:死循环是指程序中的循环条件永远为真,导致程序陷入无限循环。

这种情况可能导致程序无法继续执行后续代码或者崩溃。

为了避免死循环,开发人员应该在循环中始终更新循环条件。

8.未处理的异常:异常是程序运行过程中可能发生的错误,它可能导致程序崩溃或者产生不可预测的结果。

为了避免未处理的异常,开发人员应该使用异常处理机制来捕获和处理异常。

C语言程序设计中的常见错误和解决

C语言程序设计中的常见错误和解决

C语言程序设计中的常见错误和解决在C语言程序设计中,很多初学者经常会遇到一些常见的错误。

这些错误可能是语法错误、逻辑错误或者是其他一些常见问题导致的。

本文将介绍一些经常出现的C语言程序设计错误,并提供相应的解决方法,帮助读者更好地理解和掌握C语言编程。

一、语法错误1. 括号未匹配括号未匹配是C语言中常见的语法错误之一。

在编写代码时,经常会使用到括号,如if语句、for循环等。

如果不小心忘记关闭某个括号,就会导致括号未匹配的错误。

解决方法:仔细检查代码中的括号是否匹配,并确保每个左括号都有相应的右括号。

2. 分号丢失分号丢失是C语言中另一个常见的语法错误。

在C语言中,分号用于分隔语句,如果遗漏了分号,编译器就无法识别出语句的结束。

解决方法:检查每一行语句的末尾,确保每个语句都以分号结尾。

3. 变量未声明在使用变量之前,必须先声明该变量。

如果没有先声明变量就直接使用,编译器将无法识别该变量,从而报错。

解决方法:在使用变量之前,先进行变量声明。

二、逻辑错误1. 循环控制条件错误在编写循环语句时,控制条件的错误是常见的逻辑错误。

如果循环的控制条件错误,循环可能无法正常结束或者根本无法执行。

解决方法:仔细检查循环的控制条件,确保条件符合预期,并在循环体内更新循环变量。

2. 数组越界访问在C语言中,数组的索引从0开始,通过索引访问数组元素时,如果索引超出了数组的范围,就会导致数组越界访问的错误。

解决方法:确保数组索引在正确的范围内,避免越界访问。

如果需要遍历数组,可以使用循环来控制数组的访问范围。

三、其他常见问题及解决方法1. 变量类型不匹配在赋值操作或者表达式计算时,如果不同类型的变量之间进行操作,则会导致变量类型不匹配的错误。

解决方法:确保操作的变量类型相同或者进行强制类型转换,以保证变量类型的匹配。

2. 内存泄漏在C语言中,手动分配内存的操作是常见的。

如果分配了内存空间,但在使用完毕后未及时释放,就会导致内存泄漏。

C语言常见错误与调试方法

C语言常见错误与调试方法

C语言常见错误与调试方法在学习和使用C语言的过程中,出现错误是很常见的。

这些错误可能会导致程序无法正常运行或产生不符合预期的结果。

为了提高代码的质量和效率,我们需要了解常见的C语言错误,并学会相应的调试方法。

1. 语法错误语法错误是最常见的错误类型之一。

它们通常是由于拼写错误、标点符号的错误、缺少分号以及错误的语法结构等问题导致的。

为了避免语法错误,我们应该养成良好的编程习惯,例如检查拼写和标点符号、使用代码缩进和注释来提高代码的可读性。

当遇到语法错误时,我们应该仔细检查所在代码行及其前后的语句,查找可能存在的拼写错误或语法结构错误。

有时,观察编译器给出的错误提示信息也是解决语法错误的关键。

2. 逻辑错误逻辑错误是指程序运行时产生错误结果、逻辑混乱或无法按照预期执行的情况。

这些错误通常是由于程序员的思考不清晰或对问题理解不准确导致的。

要避免逻辑错误,我们需要仔细分析和推理代码的逻辑,确保我们的代码能够完整地涵盖目标问题。

此外,我们还可以使用调试工具来帮助捕捉逻辑错误,例如使用调试器逐步跟踪代码的执行路径、使用断点来观察变量值等。

当遇到逻辑错误时,我们可以尝试使用输出语句在关键位置输出变量的值,以便观察程序的执行情况。

另外,调试工具提供了代码的逐行执行功能,我们可以逐步检查代码并观察变量的值,从而找出逻辑错误的根源。

3. 数组越界错误数组越界错误是指在访问数组元素时超出了数组的范围。

这样的错误可能会导致程序崩溃或者产生不可预测的结果。

为了避免数组越界错误,我们需要确保在访问数组元素之前检查数组的边界。

此外,我们还可以使用循环结构来遍历数组,并通过循环变量来控制访问数组的索引。

当遇到数组越界错误时,我们应该检查涉及的所有循环和条件语句,确定数组索引的范围是否正确。

此外,一些编译器会提供工具来检测数组越界错误,我们可以使用这些工具来优化代码和修复错误。

4. 内存泄漏错误内存泄漏错误是指在程序运行过程中未正确释放不再使用的内存。

C语言错误大全

C语言错误大全

C語言錯誤大全1. Ambiguous operators need parentheses —不明確的運算需要用括號括起2. Ambiguous symbol 'xxx' —不明確的符號3. Argument list syntax error —參數表語法錯誤4. Array bounds missing —丟失數組界限符5. Array size toolarge —數組尺寸太大6. Bad character in paramenters —參數中有不適當的字符7. Bad file name format in include directive —包含命令中文件名格式不正確8. Bad ifdef directive synatax —編譯預處理ifdef有語法錯9. Bad undef directive syntax —編譯預處理undef有語法錯10. Bit field too large —位字段太長11. Call of non-function —調用未定義的函數12. Call to function with no prototype —調用函數時沒有函數的說明13. Cannot modify a const object —不允許修改常量對象14. Case outside of switch —漏掉了case 語句15. Case syntax error — Case 語法錯誤16. Code has no effect —代碼不可能執行到17. Compound statement missing{ —分程序漏掉"{"18. Conflicting type modifiers —不明確的類型說明符19. Constant expression required —要求常量表達式20. Constant out of range in comparison —在比較中常量超出範圍21. Conversion may lose significant digits —轉換時會丟失意義的數字22. Conversion of near pointer not allowed —不允許轉換近指針23. Could not find file 'xxx' —找不到XXX文件24. Declaration missing ; —說明缺少";"25. Declaration syntax error —說明中出現語法錯誤26. Default outside of switch — Default 出現在switch語句之外27. Define directive needs an identifier —定義編譯預處理需要標識符28. Division by zero —用零作除數29. Do statement must have while — Do-while語句中缺少while部分30. Enum syntax error —枚舉類型語法錯誤31. Enumeration constant syntax error —枚舉常數語法錯誤32. Error directive :xxx —錯誤的編譯預處理命令33. Error writing output file —寫輸出文件錯誤34. Expression syntax error —表達式語法錯誤35. Extra parameter in call —調用時出現多餘錯誤36. File name too long —文件名太長37. Function call missing ) —函數調用缺少右括號38. Fuction definition out of place —函數定義位置錯誤39. Fuction should return a value —函數必需返回一個值40. Goto statement missing label — Goto語句沒有標號41. Hexadecimal or octal constant too large — 16進制或8進制常數太大42. Illegal character 'x' —非法字符x43. Illegal initialization —非法的初始化44. Illegal octal digit —非法的8進制數字45. Illegal pointer subtraction —非法的指針相減46. Illegal structure operation —非法的結構體操作47. Illegal use of floating point —非法的浮點運算48. Illegal use of pointer —指針使用非法49. Improper use of a typedefsymbol —類型定義符號使用不恰當50. In-line assembly not allowed —不允許使用行間匯編51. Incompatible storage class —存儲類別不相容52. Incompatible type conversion —不相容的類型轉換53. Incorrect number format —錯誤的數據格式54. Incorrect use of default — Default使用不當55. Invalid indirection —無效的間接運算56. Invalid pointer addition —指針相加無效57. Irreducible expression tree —無法執行的表達式運算58. Lvalue required —需要邏輯值0或非0值59. Macro argument syntax error —宏參數語法錯誤60. Macro expansion too long —宏的擴展以後太長61. Mismatched number of parameters in definition —定義中參數個數不匹配62. Misplaced break —此處不應出現break語句63. Misplaced continue —此處不應出現continue語句64. Misplaced decimal point —此處不應出現小數點65. Misplaced elif directive —不應編譯預處理elif66. Misplaced else —此處不應出現else67. Misplaced else directive —此處不應出現編譯預處理else68. Misplaced endif directive —此處不應出現編譯預處理endif69. Must be addressable —必須是可以編址的70. Must take address of memory location —必須存儲定位的地址71. No declaration for function 'xxx' —沒有函數xxx的說明72. No stack —缺少堆棧73. No type information —沒有類型信息74. Non-portable pointer assignment —不可移動的指針(地址常數)賦值75. Non-portable pointer comparison —不可移動的指針(地址常數)比較76. Non-portable pointer conversion —不可移動的指針(地址常數)轉換77. Not a valid expression format type —不合法的表達式格式78. Not an allowed type —不允許使用的類型79. Numeric constant too large —數值常太大80. Out of memory —內存不夠用81. Parameter 'xxx' is never used —能數xxx沒有用到82. Pointer required on left side of -> —符號->的左邊必須是指針83. Possible use of 'xxx' before definition —在定義之前就使用了xxx(警告)84. Possibly incorrect assignment —賦值可能不正確85. Redeclaration of 'xxx' —重複定義了xxx86. Redefinition of 'xxx' is not identical — xxx的兩次定義不一致87. Register allocation failure —寄存器定址失敗88. Repeat count needs an lvalue —重複計數需要邏輯值89. Size of structure or array not known —結構體或數給大小不確定90. Statement missing ; —語句後缺少";"91. Structure or union syntax error —結構體或聯合體語法錯誤92. Structure size too large —結構體尺寸太大93. Sub scripting missing ] —下標缺少右方括號94. Superfluous & with function or array —函數或數組中有多餘的"&"95. Suspicious pointer conversion —可疑的指針轉換96. Symbol limit exceeded —符號超限97. Too few parameters in call —函數調用時的實參少於函數的參數不98. Too many default cases — Default太多(switch語句中一個)99. Too many error or warning messages —錯誤或警告信息太多100. Too many type in declaration —說明中類型太多101. Too much auto memory in function —函數用到的局部存儲太多102. Too much global data defined in file —文件中全局數據太多103. Two consecutive dots —兩個連續的句點104. Type mismatch in parameter xxx —參數xxx類型不匹配105. Type mismatch in redeclaration of 'xxx' — xxx重定義的類型不匹配106. Unable to create output file 'xxx' —無法建立輸出文件xxx107. Unable to open include file 'xxx' —無法打開被包含的文件xxx108. Unable to open input file 'xxx' —無法打開輸入文件xxx109. Undefined label 'xxx' —沒有定義的標號xxx110. Undefined structure 'xxx' —沒有定義的結構xxx111. Undefined symbol 'xxx' —沒有定義的符號xxx112. Unexpected end of file in comment started on line xxx —從xxx行開始的注解尚未結束文件不能結束113. Unexpected end of file in conditional started on line xxx —從xxx 開始的條件語句尚未結束文件不能結束114. Unknown assemble instruction —未知的匯編結構115. Unknown option —未知的操作116. Unknown preprocessor directive: 'xxx' —不認識的預處理命令xxx117. Unreachable code —無路可達的代碼118. Unterminated string or character constant —字符串缺少引號119. User break —用戶強行中斷了程序120. Void functions may not return a value — Void類型的函數不應有返回值121. Wrong number of arguments —調用函數的參數數目錯122. 'xxx' not an argument — xxx不是參數123. 'xxx' not part of structure — xxx不是結構體的一部分124. xxx statement missing ( — xxx語句缺少左括號125. xxx statement missing ) — xxx語句缺少右括號126. xxx statement missing ; — xxx缺少分號127. xxx' declared but never used —說明了xxx但沒有使用128. xxx' is assigned a value which is never used —給xxx賦了值但未用過C語言編譯錯誤信息錦集說明:Turbo C 的源程序錯誤分為三種類型:致命錯誤、一般錯誤和警告。

C语言常见错误分析和程序调试

C语言常见错误分析和程序调试

C语言常见错误分析和程序调试C语言是一种常见的编程语言,在使用的过程中,常常会出现一些错误。

本文将分析C语言常见的错误,以及如何进行程序调试。

1.语法错误:语法错误是最常见的错误类型之一、它通常是由于拼写错误、缺少分号或括号不匹配等简单的错误导致的。

解决方法是仔细检查代码,确保所有括号都是成对且正确使用,并及时修正拼写错误。

2.逻辑错误:逻辑错误是指程序的逻辑错误,即程序没有按照预期的方式执行。

这种错误很难被编译器检测到,需要程序员自己进行调试。

解决方法一是使用printf语句来输出变量的值,以观察程序的执行过程;二是使用调试工具,如GDB,来逐步执行程序并观察变量的值。

3.内存错误:内存错误是指在程序中使用了未分配或已释放的内存。

这种错误通常会导致程序崩溃或产生不可预测的结果。

解决方法是保证正确地使用内存函数,如malloc和free,并养成好的编程习惯,即分配内存时要确保及时释放。

4.数组越界:数组越界是指程序访问了数组范围之外的元素。

这种错误可能会导致程序崩溃或产生不可预测的结果。

解决方法是仔细检查数组的索引,并确保索引的值在合法范围内。

5.变量未初始化:未初始化的变量可能包含随机的垃圾值,从而导致程序的不稳定或不可预测的结果。

解决方法是在使用变量之前,先给变量赋初始值。

6.常量溢出:常量溢出是指常量值超过了其数据类型的范围。

解决方法是使用合适的数据类型,并确保常量值在其范围之内。

7.函数调用错误:函数调用错误可能是函数名拼写错误、函数参数类型不匹配或函数调用位置错误等。

解决方法是仔细检查函数名的拼写,确保函数参数与定义一致,并确保函数调用位置正确。

总之,在编写C语言程序时,应该注意避免语法错误,正确使用内存函数和数组索引,初始化变量,选择合适的数据类型,并仔细检查函数调用。

此外,对于逻辑错误,可以通过打印输出和调试工具来进行程序调试,帮助定位问题并解决错误。

C语言编程中常见的五种错误及对应解决方案

C语言编程中常见的五种错误及对应解决方案

C语⾔编程中常见的五种错误及对应解决⽅案⽬录1. 未初始化的变量2. 数组越界3. 字符串溢出4. 重复释放内存5. 使⽤⽆效的⽂件指针前⾔:C 语⾔有时名声不太好,因为它不像近期的编程语⾔(⽐如 Rust)那样具有内存安全性。

但是通过额外的代码,⼀些最常见和严重的 C 语⾔错误是可以避免的。

即使是最好的程序员也⽆法完全避免错误。

这些错误可能会引⼊安全漏洞、导致程序崩溃或产⽣意外操作,具体影响要取决于程序的运⾏逻辑。

下⽂讲解了可能影响应⽤程序的五个错误以及避免它们的⽅法:1. 未初始化的变量程序启动时,系统会为其分配⼀块内存以供存储数据。

这意味着程序启动时,变量将获得内存中的⼀个随机值。

有些编程环境会在程序启动时特意将内存“清零”,因此每个变量都得以有初始的零值。

程序中的变量都以零值作为初始值,听上去是很不错的。

但是在 C 编程规范中,系统并不会初始化变量。

看⼀下这个使⽤了若⼲变量和两个数组的⽰例程序:#include <stdio.h>#include <stdlib.h>intmain(){int i, j, k;int numbers[5];int *array;puts("These variables are not initialized:");printf(" i = %d\n", i);printf(" j = %d\n", j);printf(" k = %d\n", k);puts("This array is not initialized:");for (i = 0; i < 5; i++) {printf(" numbers[%d] = %d\n", i, numbers[i]);}puts("malloc an array ...");array = malloc(sizeof(int) * 5);if (array) {puts("This malloc'ed array is not initialized:");for (i = 0; i < 5; i++) {printf(" array[%d] = %d\n", i, array[i]);}free(array);}/* done */puts("Ok");return 0;}这个程序不会初始化变量,所以变量以系统内存中的随机值作为初始值。

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

1、fatalerrorC1010:unexpe;寻找预编译头文件路径时遇到了不该遇到的文件尾;
2、fatalerrorC1083:Cannot;不能打开包含文件“R…….h”:没有这样的文件或;
3、errorC2011:'C……':'clas;类“C……”重定义;
4、errorC 2018:unknownchar;不认识的字符'0xa3';
5、errorC2
1、fatal error C1010: unexpected end of file while looking for pre compiled header directive。

寻找预编译头文件路径时遇到了不该遇到的文件尾。

(一般是没有#incl ude "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: 'IDD_MYDIALOG' : undeclared identifier
“IDD_MYDIALOG”:未声明过的标识符。

7、error C2082: redefinition of formal parameter 'bReset'
函数参数“bReset”在函数体中重定义。

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 'CHel loView'
成员函数“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 re turn value
“f……”的return语句没有返回值。

16、warning C4553: '= =' : operator has no effect; did you intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having bee n initialized
局部变量“bReset”没有初始化就使用。

18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。

19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writi ng
连接错误:不能打开P1.exe文件,以改写内容。

(一般是P1.Exe还在运行,未关闭)
20、error LNK2001: unresolved external symbol "public: virtual _ _ thisc all C……::~C……(void)"
连接时发现没有实现的外部符号(变量、函数等)。

function call missing argument list 调用函数的时候没有给参数。

member function definition looks like a ctor, but name does n ot match enclosing class 成员函数声明了但没有使用
unexpected end of file while looking for precompiled header d irective 在寻找预编译头文件时文件意外结束,编译不正常终止可能造成这种情况
21、Error LNK2001:unresolved external symbol
加上所需的.LIB文件
22、error C3861: '_beginthreadex': identifier not found, even with argument-dependent lookup
#inlude <process.h>
project Setting -> C++ ->Category中选Code Generate ->using runtim e lib 下选多线程模式
the multithreaded C run-time libraries就是多线程运行库,是一些.li b文件
23、
project=>setting=>c/c++=>code generation=>runtime library改成Mult ithreaded (dll) (debug) -- ok!
24、error lnk2005问题解决
在visual c++下用静态连编有时会产生error lnk2005问题。

解决方法:
1、选择所有的用到mfc的cpp文件,右击然后选择c/c++,选择precompil ed headers,选择not using precompiled headers。

2、在不用mfc的cpp文件开头添加上#include <afx.h>文件,也可以在相应头文件中添加,不过要注意的是如果在该头文件中包含了windows.h文件必须写在#include <windows.h>之前。

相关文档
最新文档