VC++编译错误集锦及解决方案

来源:互联网 发布:网络是媒体还是媒介 编辑:程序博客网 时间:2024/06/08 16:30

问题1、error C2065: 'NULL' : undeclared identifier

办法:需要添加#include "windows.h"

问题2、在VS2008中生成时出错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型。但是vs2008不支持默认整型。

解决方法如下:

打开:项目----项目属性----配置属性----C/C++----命令行,在附加选项那里添加/wd4430这个选项。

问题3、error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [2]' to 'LPCWSTR'

VS2008开发程序时,默认的字符集是Unicode。所以如果程序中使用字符常量一定要显示转换为Unicode型,否则编译时报错。如果你不希望程序支持Unicode字符集,更改项目设置就可以了。
project->properties->configurations Properties -> General ->Project Defaults -> Charater Set中将Unicode字符集改为未设置即可。

问题4、找不到头文件或者命名空间。

可以考虑一下是不是没有加using namespace XXX;

问题5、cannot convert parameter 1 from 'CString' to 'const char *'。

可以这样尝试,例如有CString str;转换时用(const char*)(LPCTSTR)str