将项目从 vc6 转换为 vc9 的问题
Posted
技术标签:
【中文标题】将项目从 vc6 转换为 vc9 的问题【英文标题】:Issue in convert project from vc6 to vc9 【发布时间】:2012-06-26 11:47:37 【问题描述】:我有一个用vc6构建的项目,现在我必须将它转换成vc9。
代码中有一行
CMapStringToOb cLogPathMap;
ofstream tlogFile;
但是当我构建项目时出现以下错误。
错误 C2146:语法错误:缺少 ';'在标识符“tlogFile”之前
错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
当我转到 ofstream 的定义时,打开文件 iosfwd,其中 ofstream 定义为
typedef basic_ofstream<char, char_traits<char> > ofstream;
【问题讨论】:
所以您将#include 从iostream.h 更改为iostream?然后还要修复命名空间,就是std::ofstream 【参考方案1】:以下 microsoft 建议包含 fstream: http://msdn.microsoft.com/en-us/library/e9cabcax%28v=vs.90%29.aspx
所以在你的头文件中添加以下行包含该 c++ 文件:
#include <fstream>
【讨论】:
@vikky:请注意,在 VC6 中,文件名是fstream.h
。现在它只需要fstream
,根据 C++ 标准(在 VC6 制作时还没有准备好)。
如何添加 using namespace std;在您包含之后。
报错信息基本是说ofstream没有定义。
我不确定你编辑了什么。你添加了 using namespace std;像下面的例子cplusplus.com/reference/iostream/ostream/tellp 或改变第二行读取std::ofstream tlogFile;以上是关于将项目从 vc6 转换为 vc9 的问题的主要内容,如果未能解决你的问题,请参考以下文章
VC++ 2010:从 VC6++ 转换后显示打开对话框出错
如何将基于mpir库的VC9.0代码转换为Matlab mex函数?
将 AfxGetMainWnd 上的 C 样式系列转换从 VC6/MFC6 转换为在现代 MFC 版本(VC++2008 及更高版本)中运行