12 legacy compilation visual-c++-6 visual-studio-2012
我正在使用Visual Studio 2012来开发我的项目,我也安装了Visual Studio 2010 - 这使我可以选择在Visual Studio 2012中使用VC++ 10编译器(项目属性),但我也安装了Visual C++ 6并且在某种程度上Visual Studio 2012中不存在使用VC++ 6编译器的选项,如何添加此选项(手动)?
chu*_*e x 18
答案肯定是可能的.这似乎很有可能,但我无法获得VC 6的副本,所以我无法验证它.我能做的是让VS 2012使用VC 7(VS 2002)编译项目.
更新:答案肯定是肯定的.OP在评论中表明他能够通过使用此解决方案使VC 6正常工作.
我这样做的方法是安装以下(按安装顺序):
Windows 7,SP1,32位
我之所以选择Windows 7,是因为它是最早支持VS 2012的Windows版本.我使用的是32位版本,因为VS 2002(VC7)无法安装在x64机器上.
Visual Studio 2002,SP1
正如我所提到的,我无法获得VC6.在微软的网站上找不到它.布鲁斯在这个问题下的评论提供了这个有用的见解:
Visual C++ 6.0不适用于Microsoft(包括通过MSDN),因为它包含Microsoft JVM.请参阅此链接了解详情.- 布鲁斯克兰
看到上面的内容后,我认为安装VS 2002(VC 7)是下一个最好的选择.
显然,如果您有副本1,这就是安装VC 6的地方.
1 我应该注意,对于任何有兴趣的人,可以在Ebay上使用VC 6.如果我以实际货币而不是积分付款,我会更加努力,并获得VC 6的副本进行测试.
Visual Studio 2010,SP1
唯一的原因是它是水仙花的必需品.更多关于下面的水仙花.
Visual Studio 2012,Update 2
这是原始问题的要求.
这是一组配置文件,允许VS 2010和VS 2012以旧版VC编译器为目标.
目前,这些是受支持的VC编译器版本:
我应该注意到,Daffodil并没有正式支持VS 2012作为IDE,但它似乎确实有效.来自水仙花的网站:
只要还安装了VS 2010,Daffodil在VS 2012及更高版本2中运行良好.
2 使用VS 2013和VS 2015时似乎存在调试问题,如下所示:
在Visual Studio 2013中使用v60平台工具集时,调试信息不匹配
为了测试上面的内容,我在Visual Studio 2012中创建了一个新的C++ Win 32控制台项目.然后,我从项目中删除了所有头文件和cpp文件 - 这些文件具有VS 2012特定的内容,因此不需要.然后我添加了一个简单的"hello world"文件,我可以用来测试:
#include <iostream.h>
void main()
{
cout << "Hello World!" << endl;
}
Run Code Online (Sandbox Code Playgroud)
按原样使用项目(针对VS 2012),我尝试构建它并且失败了.
接下来,我右键单击项目和选定的属性.我在对话框的左侧选择了Configuration Properties,然后在右侧的Platform Toolset下选择了v70.您会注意到v60还有一个选项:

然后我将更改保存到项目中并进行了构建.它成功构建了一个exe.为了验证VC 7是否正在使用,我在编译期间启动了Process Monitor:

正如您所见,从VC 7目录中调用编译器cl.exe.
最初的问题涉及编译现有的VC 6项目.关于这一点只有几点注释.
我的猜测是,要重新定位工作,您必须在VS 2012中创建一个新的空项目,然后添加所有现有的源文件.这样做的原因是显然两个版本的Visual Studio的项目格式不同.
正如我所提到的,我使用VC 7而不是6进行测试.我想最后一步是让OP使用VC 6尝试所有这些.希望一切正常.