VS(C++)编程遇到的错误集合

编译错误

1.error C1010:

  原因:没有在文件开头添加include "stdafx.h"。

2.error C2440: “=”: 无法从“const char [25]”转换为“LPCWSTR”

**原因:**字符类型问题

  解决方法:

   将此句 wndClass.lpszClassName ="DIRECTX11BookWindowClass";更改为wndClass.lpszClassName =L"DIRECTX11BookWindowClass";即在字符串的前面添加一个大写L或者利用“_T(要转换的字符)”。这样可以实现将字符串转换。L宏为宽字节宏,无论什么环境下都能转化为宽字符,即Unicode字符;_T宏为一个适配宏,可使编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式,可移植性强。

3.不能在**类外重新声明该函数

  解决方法:检查大括号匹配是否正确

4.error LNK1168: 无法打开 E:...**.exe 进行写入

**原因:**之前运行的exe未关闭

**解决方法**:关闭之前运行的exe

5.error C2065: “IDD_TEMPDLG”: 未声明的标识符

  原因:资源头文件没有添加。应添加代码:#include "resource.h"

6.error:LNK2005 已经在*.obj中定义

  原因:博客

     注意全局变量定义在.cpp中

7."vector不是模板"或"list不是模板"

  原因:list和vector在命名空间std里;

  解决办法:

需要声明using namespace std;

8."不允许指针指向不完整的类类型"

  原因:没有include;

调试与运行错误

1.VS调试时出现“无法查找或打开 PDB 文件”

  解决方法:

   - “工具”-“选项”-“调试”-“常规”,勾选“启用源服务器支持”; 

   - “调试”-“符号”,勾选“Windows符号服务器”。

2.0x010C6B34 处有未经处理的异常(在 **.exe 中):0xC0000005: 写入位置 0x00000000 时发生访问冲突。

  原因:向空指针(NULL)中写入数据;

  解决方法:先为指针分配内存(如动态分配,随用随分),再写入数据。

3.调试或运行报错:0xC0000005: 读取位置 0xFEEEFEEE 时发生访问冲突

  原因:指针所指向的空间已经被释放;

4.error MSB8008: 指定的平台工具集(v110)未安装或无效。请确保选择受支持的 Platform Toolset值

  原因:平台工具集(v110)是vs2012下用的,用低版本打开工程会出问题,如VS2010默认是用v100;

  解决方法:Project > Properties > Configuration Properties > General (General) > Platform Toolset >> v100

原文地址:https://www.cnblogs.com/silentteen/p/6010890.html