VC6 程序 在VS2019或其他高版本上编译运行

原创
2020/03/20 14:47
阅读数 4.1K
核心思路:
利用VC6的编译器,利用VS2019等高版本的IDE
前提条件:
1.需要安装VC6,VS2010( daffodil 依赖2010),VS2019或2017 (下载地址: https://msdn.itellyou.cn/
2. 下载并安装 daffodil
3.在高版本的IDE里面,右击工程,常规选项中,将平台工具集选择为V60
4.重启电脑,再用VS2019打开(保证文 件不被占用)
4.重新编译即可,正常情况下会一切正常
注:我遇到的问题是几个工程用一个文件夹的化,需要 一个一个生成 ,直接点生成解决方案会出现PDB被占用的情况,导致生成失败,改成一个一个生成后成功。(是不是新的IDE支持并行生成所致)
 
可选项,关闭并行编译(来自:Didier LapeyreTHALES Services Toulouse )
每次只编译一个: This bug was systematic
disabling the parallel compilation under VS2019 :
  • Select " Tools -> Options... "
  • Select "Projects and solutions" then "Build and run..." in the dialog box
  • Set the "maximum number of parallel project builds" to "1"
Regards,
 
v60 的时候, 就不能用中文命名变量, 因为 VC++6.0 只支持 ANSI 编码的源文件.
###################
版本号:
Microsoft Visual Studio 6.0:         VC6.0
Microsoft Visual Studio .NET 2002:     VC7.0 
Microsoft Visual Studio .NET 2003:     VC7.1 
Microsoft Visual Studio 2005:      VC8.0 
Microsoft Visual Studio 2008:       VC9.0
Microsoft Visual Studio 2010:       VC10.0
Microsoft Visual Studio 2012:       VC11.0
Microsoft Visual Studio 2013:       VC12.0
Microsoft Visual Studio 2015:       VC14.0
Microsoft Visual Studio 2017:       VC15.0
 
其他错误
错误1:error LNK2026: 模块对于 SAFESEH 映像是不安全的
解决方法:
1.打开该项目的“属性页”对话框。
2.单击“链接器”文件夹。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。 错误2:解决“错误 D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题
 
错误3:c++ - pdb文件,检查磁盘空间不足,路径无效或者权限不足
在这个例子中,我遇到类似的问题,原因是windbg持有所有pdb文件,所以当 Visual Studio 试图创建新的pdb文件时,它无法覆盖旧文件,因为windbg正在使用这些文件。
所以明显的问题是当 Visual Studio 无法用新输出文件覆盖现有文件时,它输出以下错误
Switch the debug info to C7 format instead of using the PDB.
Project Options -> C/C++ -> General -> Debug Information Format and set it to C7.
 
 
结论:
在VC6巨大的老工程情况下,只能选V60编译,因为选别的到处是错误。
目标平台工具集选V60的情况下
VS2010可成功编译、调试(进入断点,提示是:模块已加载,包含符号)
VS2019可成功编译、但调试不了(无法进入断点,提示是:模块已加载,不包含符号)
 
其他情况-在VC6新建Hello World用于快速测试
目标平台工具集选V100(安装了2010)的情况下
VS2019可成功编译、可进入调试
目标平台工具集选V142(vs2019) 的情况下
VS2019可成功编译、可进入调试

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部