编译错误
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