fatal error C1083
问题描述:无法打开包括文件:“iostream.h”: No such file or directory
解决方案:应该写成<iostream>
- 在VC2010上面采用C++风格的头文件而不是C风格的头文件,除非你是在用C。
- 所有的C++库在std命名空间中定义:using namespace std;
- 标准头文件:#include <some_file.h>
- 用户自定义头文件:#include "my_file.h"
C头文件 可以继续使用
|
C++ (C++98后取消)
|
C++ 98 ("c"开头,去掉".h"后缀) 建议使用
|
stdio.h
|
iostream.h |
<iostream>
|
<cstdlib> | ||
<cstdio> | ||
assert.h | <cassert> |
C2144
问题描述:int should be preceded by :
解决方案:这个是从C#转C++遇到的一个问题。
C# 语法是这样的:
public int read();
c++语法是这样的:
public:
int read();
error C2664
问题描述:“MessageBoxW”: 不能将参数 2 从“const char [17]”转换“LPCWSTR”
解决方案:字符集问题,项目-->Properties-->Configuration Properties-->Character Set=Unicode
warning C4996
问题描述:warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
解决方案:这是因为VC从2005版本开始,微软引入了一系列的安全加强的函数来增强CRT(C运行时),这里对应的是strcpy_s。_s意为safe的意思,同样的道理,strcat也是同样。因此要解决这个问题,我们可以用strcpy_s来替换strcpy,但是注意strcpy_s并非所有编译器都提供,因此如果要跨编译器,请采用错误信息中所提示的方式,定义_CRT_SECURE_NO_WARNINGS宏来掩耳盗铃吧。另外注意并非所有的加强函数都是在屁股后面加_s,比如stricmp这个字符串比较函数的增强版名字是_stricmp。下面,用strcpy_s来更改程序:
error LNK2001
问题描述:unresolved external symbol _mainCRTStartup
解决方案:没有定义main函数
error LNK2019
问题描述:无法解析的外部符号 __imp__InternetGetCookieA@16 ,该符号在函数 "void __cdecl MySend(unsigned int)" (?MySend@@YAXI@Z) 中被引用(其他类似的错误也一样)
解决方案:应该是你用到了一个库函数,但是你的项目没有把它的库加进去。项目 --> 属性 --> 链接器 --> 输入 --> 附近依赖项 填入你使用到的库