【发布时间】:2009-07-01 23:54:40
【问题描述】:
我需要使用一些在 Visual C++ 6.0 中开发的旧 C++ 代码。现在它给了我大量的编译错误。 (例如,“无法打开包含文件:'iostream.h'”......因为现在它应该说 #include
我怎样才能使用此代码而不必到处更改它?
【问题讨论】:
标签: c++ visual-studio visual-c++
我需要使用一些在 Visual C++ 6.0 中开发的旧 C++ 代码。现在它给了我大量的编译错误。 (例如,“无法打开包含文件:'iostream.h'”......因为现在它应该说 #include
我怎样才能使用此代码而不必到处更改它?
【问题讨论】:
标签: c++ visual-studio visual-c++
问题是,VC6 非常非常糟糕。你只是摆脱了 vc6 中的那些编译器错误,因为 vc6 太松了。修复错误,你会很高兴你这样做了——我已经完成了两次转换,它使代码更安全。
【讨论】:
很遗憾,VS2008 中没有可让您执行此操作的定位功能。
您只需要清理您的代码。幸运的是,VS2008 比旧版本的 Visual C++(尤其是 VC 6)更符合标准。清理代码应该会在未来有所帮助(您以后不必担心这一点),如果您决定移植到其他平台,也会有所帮助。
【讨论】:
正如其他人所提到的,改进代码以使用 VS 2008 将是一个值得练习的练习。
如果这不是一个选项(即旧版应用程序损坏并且需要立即修复),您可以尝试创建一个安装了 VC 6 的虚拟机并使用它来编译应用程序。
【讨论】:
如果您正在寻找一种基本上会强制 Visual Studio 2005/2008 对 C++ 代码使用 VC6 编译器的开关,那么它不存在。
有很多方法可以使用自定义 make 文件和大量骇客。我不知道有谁做到了这一点,但我相信只要做足够的工作就可以做到。
但是,我同意此线程中的大多数其他人的观点。现在修复代码会为您提供更好的服务。您可能会花费与直接修复代码一样多的时间或更多时间来解决问题。
【讨论】:
您绝对应该修复代码。
如果您做不到,并且您只有#include<iostream.h> 之类的问题,您也可以自己创建一个iostream.h 文件:
#pragma once
#pragma message("*********************************************")
#pragma message("Do not use #include <iostream.h> in new code!")
#pragma message("*********************************************")
#include <iostream>
using namespace std;
【讨论】: