你还在Windows 11上死磕Visual C++ 6.0?这事我太熟了。当年用VC6写MFC的老开发、跑《操作系统》课程设计的学生、维护二十年老项目的工程师,几乎都被Win11的兼容性折腾过。VC6.0这个1998年的老兵,在2024年的系统上问题远不止“装不上”这么简单——安装向导直接闪退、装完打不开、一调试就崩溃、资源编辑器乱码,每一样都能让人血压升高。这篇文章是我多次在Win11各版本(21H2到24H2)上实测后整理出来的终极操作指南,从ISO镜像改造安装、兼容性参数配置,到内存补丁和调试器替换,全部给到可复现的步骤。无论你是刚需用户还是想折腾个怀旧环境,这份指南都能让你少踩一半的坑。
1. 准备工作:版本选型与兼容性现状
1.1 为什么在Win11上安装VC6.0这么难
先说句公道话。VC6.0本身不是不能装到Win11上,而是它的安装程序实在太过陈旧。这个1998年发布的IDE,其安装引导程序是在Windows 98时代设计的,依赖的很多系统组件和API调用方式在如今的内核上早已面目全非。具体表现就是安装向导初始化到一半直接消失,连个错误提示都不给。这跟Win11对16位安装程序的限制有关,也和资源的加载方式有关。
我实测过的几个Win11版本里,22H2之前还算客气,至少还能看到安装界面但卡在某一步;到了23H2和24H2,问题更集中表现为三种:安装向导秒退、注册表写入失败、安装完成后MSDEV.EXE启动即崩溃。所以不管你是装来写MFC还是跑老项目,第一步不是急着双击setup,而是搞清楚你手上的是什么版本的光盘镜像或安装包,这直接决定了后续走哪条安装路径。
1.2 版本识别与选择建议
市面上能拿到的VC6.0安装包大致分几类:原版光盘镜像(ISO)、精简绿色版、集成SP6的硬盘安装版、以及某些论坛做的“完美版”。我的建议优先级是这样的:
- 首选原版ISO镜像加SP6补丁包。原因很简单:原版安装程序虽然老,但不会夹带私货,后续打补丁也干净。SP6是微软官方最后一个服务包,修复了大量已知BUG,包括一些内存管理和调试相关的严重问题。
- 次选集成SP6的硬盘安装版。这类版本通常已经有人改过安装脚本,跳过了一些兼容性检测,装起来省事,但要注意来源是否可靠,避免捆绑软件。
- 绿色免安装版是兜底方案。解压即用、免去安装过程,但问题在于注册表和系统组件缺失,对于需要注册COM组件和类型库的MFC项目,很容易缺胳膊少腿。适合临时用用,不适合正经搞开发。
怎么识别你手上的版本?看安装目录下有没有SP6或VC6SP6字样的补丁文件,或者装完后在IDE的“关于”对话框里看版本号。如果显示6.0.8168,就是打了SP6的;如果还在6.0.8162,那就是原版无补丁。我自己见过很多人装完发现版本不对,折腾大半天,其实一开始就要看清版本。
1.3 安装前的系统环境检查
动手安装之前,花两分钟做三个检查,能省掉后面一堆排查时间。
第一个检查系统版本。Win11如果是24H2及以上,安装方式尽量选后面我讲的“解压改SETUP”方案,别直接双击原盘里的SETUP.EXE,大概率秒退。可以在“设置-系统-关于”里看到准确的OS内部版本号。
第二个检查用户权限。VC6.0的安装过程需要向Program Files和注册表写入数据,建议用管理员账户执行安装,但也要注意,不要用内置的Administrator超级管理员账户,某些情况下反而会触发UAC的怪异行为。就用自己的日常管理员账户,右键“以管理员身份运行”即可。
第三个检查杀毒软件。这里要特别提醒:Windows Defender或第三方杀毒软件有时会把VC6的某些破解补丁、内存补丁直接杀掉。我用的方法是安装前把整个安装目录加入排除列表,装完补丁后再开启实时保护。这倒不是为了绕过安全机制,而是这些老工具的补丁确实容易被误报。
2. 安装实操:三种可靠方案与关键参数
2.1 方案一:ISO镜像解压改SETUP安装法
这是我用了很多次、成功率最高的方法。原理很简单,VC6.0原版光盘里的SETUP.EXE在Win11上初始化失败,很大程度上和它读取介质的方式有关。把ISO完整解压到本地磁盘,然后修改安装程序的兼容性标志,就能绕过这个坑。
具体步骤:
- 解压ISO。用资源管理器直接挂载ISO,或者用解压工具把全部文件释放到一个目录,比如
D:\VC6_Setup。注意是完整解压,不是只解压部分文件。挂载虚拟光驱的方式我也试过,但某些情况下依然会触发安装程序闪退,所以建议完整解压到本地。 - 找到
SETUP.EXE和SETUP.INS两个文件,右键属性,在“兼容性”选项卡里勾选“以兼容模式运行这个程序”,下拉框选“Windows 98/Windows Me”。 - 顺带勾上“以管理员身份运行此程序”和“减少颜色模式”中的16位色。VC6.0的安装界面在真彩色下偶尔会出现按钮错位,16位色下反而最稳定。
- 双击
SETUP.EXE开始安装。到选择安装类型的界面,选“Custom”自定义安装。 - 关键一步:在组件选择里,把“Data Access”里的“ADO/RDS”等组件取消勾选,其实勾选也能装,但后续容易在Win11上出乱子,特别是某些机器上OLE DB驱动注册失败会直接导致安装回滚。我就遇到过两次,安装进度条走到一半,提示“安装程序在注册组件时失败”,然后整体回滚。
- 安装路径建议用默认的
C:\Program Files (x86)\Microsoft Visual Studio\VC98。虽然可以改路径,但VC6的老毛病是某些注册表项硬编码了默认路径,自定义路径时如果目录名带空格或中文,编译时容易出现莫名其妙的问题。
2.2 方案二:绿色免安装版与手动配置
如果方案一安装到一半还是扑街,别气馁,绿色版其实也是个很实际的选择。我第一次在Win11 24H2上折腾VC6时,就是靠绿色版救的急。
操作思路:
- 找一个可靠的绿色版压缩包,解压到目录,比如
D:\VC6\。最好选那种带“完整版”字样的,文件和注册表项相对齐全。 - 进入目录,找
VC6.EXE或MSDEV.EXE,右键属性设置兼容性:兼容模式选“Windows XP (Service Pack 2)”,勾选“以管理员身份运行”。 - 运行
注册组件.bat或手动注册关键DLL。具体来说,打开CMD管理员窗口,执行:regsvr32 "D:\VC6\COMMON\MSDEV98\BIN\msobj98.dll"(路径按实际调整)。 - 设置环境变量。右键“此电脑-属性-高级系统设置-环境变量”,在系统变量里新建
PATH项,加入D:\VC6\VC98\BIN,或者直接把VC6的BIN目录加到PATHEXE。这一步是为了让命令行下能直接用CL.EXE和NMAKE.EXE。 - 运行VC6前,首次启动通常会提示“Windows已经阻止此程序访问...”或者直接白屏,这时候重新设置兼容性,并且删除VC6目录下的
*.OPT文件(这是IDE的选项配置文件,旧配置在Win11上容易冲突)。
绿色版的坑主要在两方面。第一是找不到MSDEV.EXE的某些依赖库,表现为打开时提示缺少某个DLL,这时候可以到原版ISO里找COMMON目录下的文件补齐。第二是MFC类库向导没法用,因为你没有真正安装VC6的向导组件,这个限制无解,只能通过后面我讲的“虚拟机兜底方案”来解决。
2.3 方案三:虚拟机兜底
绿色版和兼容模式都救不了时,虚拟机是最后的绝对可靠方案,尤其适合必须用VC6跑完整MFC项目的人。没人愿意为一个二十多年的IDE开虚拟机,但如果你遇到的是“必须要用VC6”而非“想用VC6”的场景,这反而是最省心的。
我用的是免费开源的虚拟机软件,装WinXP或Win2000系统镜像,然后在虚拟机里正常安装VC6.0。全程没有任何兼容性问题,编译、调试、MFC向导全都正常。共享文件夹设置好后,代码在宿主机上编辑,虚拟机里编译,体验并不差。
这个方案的缺点是占内存、切换麻烦、无法直接访问宿主机的串口等硬件设备。我自己的做法是:日常写代码和看代码在宿主机上,只在需要编译调试时开虚拟机。如果工作流是“多文件修改-频繁编译调试”的那种,虚拟机体验确实不如原生,这时候建议去考虑官方的新版Visual Studio社区版搭配旧工具集。
2.4 安装完成后的版本验证
无论用哪个方案,装完后的第一件事是确认版本是否正确打上SP6补丁。检查方法很简单:
启动VC6,菜单栏“帮助-关于”,看到“Microsoft Visual C++ 6.0 Enterprise Edition, Version 6.0.8168”说明已经集成SP6,如果版本号是6.0.8162或者更旧,就需要手动打补丁。
打SP6补丁的时机要注意:如果安装时用的是原版ISO,建议先打补丁再配置其他东西;如果用的是集成版,版本号已经对了就别重复打,容易把DLL版本搞混。某次我手贱在绿色版上强行打SP6补丁,结果把MSDEV.EXE搞坏了,启动即崩溃,最后只能重新解压。
3. 运行环境配置与核心问题修复
3.1 解决启动即崩溃的MSDEV问题
这是安装完成后最常见的问题:双击MSDEV.EXE,界面一闪,进程就消失了。有人重启电脑还是这样,有人换兼容模式还是这样,甚至有人重装了三遍依旧崩溃。
这个问题的根源我查了很久,最终定位在VC6的调试组件和一个系统DLL的兼容性上。VC6的MSDEV.EXE在Win11下启动时会去加载DM.DLL和MSJAVA.DLL这类的调试相关组件,如果这些组件初始化失败或者版本冲突,IDE就自行关闭了。
解决办法是按顺序做三件事:
- 把MSDEV.EXE的兼容模式改回“Windows XP (Service Pack 2)”,不要用Windows 98模式。98模式在某些机器上反而加剧了崩溃。
- 禁用桌面元素:右键MSDEV.EXE属性,兼容性里勾选“禁用全屏优化”和“在低分辨率模式下运行”。
- 加内存启动参数:右键快捷方式,在“目标”后面加上
/L参数,也就是改为类似"D:\VC6\MSDEV.EXE" /L。这个参数会强制VC6用旧版的地址空间布局,规避系统ASLR带来的崩溃。实测中这个参数对很多莫名其妙崩溃有效。
如果还是崩溃,去安装目录下找到MSDEV.EXE的“属性-兼容性”,勾选“以兼容模式运行这个程序”里的“Windows Vista (Service Pack 2)”。听起来版本跨度很大,但某些机器上VC6在Vista兼容模式下反而比XP模式更稳。这个没太多道理可讲,属于实测出来的结果。
3.2 配置中文字符集与乱码修复
VC6时代对Unicode的支持相当有限,默认的代码页是系统ANSI。在Win11上,控制面板里的“非Unicode程序的语言”默认是简体中文(如果系统是中文版)倒还好,但很多人Win11系统用的是英文语言包加中文补充包,这类环境会导致VC6编辑器里中文注释变成乱码。
处理方式分两步:
第一步,配置系统区域。开始菜单搜索“更改系统区域设置”,打开后在“区域”选项卡里把“当前系统区域设置”改为“中文(简体,中国)”,勾选“Beta版:使用Unicode UTF-8提供全球语言支持”。注意,这个Beta选项会让部分老程序乱码更严重,如果发现VC6里反而更乱,取消勾选再看看。
第二步,设置VC6的字体。菜单“工具-选项-格式”,把“源文件”的字体从默认的“Courier New”改成“宋体”或“新宋体”。这一步不直接修乱码,但能让已有的乱码内容在显示上更可读。VC6的编辑器对字体渲染兼容性差,某些TrueType字体下中文显示错位,宋体是最稳的选择。
在源文件里直接写的UTF-8中文注释,VC6多半显示成乱码,这不是环境问题,是VC6本身不识别UTF-8 BOM。我建议项目内统一用GB2312编码保存源文件,或者英文注释,这是治本的方案。某次我在项目中混用了UTF-8和GB2312的源文件,编译时虽然没有报错,但界面上的中文注释全是乱码,排查了半天才想起来编码问题。
3.3 深入修复调试器问题
VC6的调试器在Win11上问题比IDE本身还多。最经典的几个症状:
- 按F5开始调试时,程序运行直接跑飞,不在断点处停下。
- 设置断点后,断点变成空心圆,提示“尚未绑定”。
- 调试时退出,系统报错“Microsoft (R) Developer Studio 已停止工作”。
这些问题的共同根源是VC6自带的调试辅助组件和Win11的调试接口不兼容。特别是Win11 24H2之后,调试器的内存访问方式被系统严格限制,老调试器很难正常工作。
主流的方案是下载别人针对VC6在Win11上做过修复的调试DLL,替换掉安装目录下的DM.DLL。具体步骤:
- 先备份原文件:把
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\DM.DLL重命名为DM.DLL.BAK。 - 把修复版
DM.DLL放到相同目录。 - 重新启动VC6,按Ctrl+Alt+R打开寄存器窗口,尝试在某个函数设置断点调试。
替换DLL后,断点无法命中的情况基本解决。但要注意,部分修复版DLL是第三方修改的,使用前确认来源,尽量从可信的开发社区下载,且先扫描病毒。我自己实测过几个版本,有的修复了断点问题但导致“Step Over”变慢,有的会导致“Watch”窗口无法展开变量,这些都需要你按自己的主要使用场景去权衡。
3.4 时区与时间戳问题排查
VC6在编译时默认使用UTC时间作为生成的调试信息时间戳,在Win11上如果你系统时区设置不对,或者安装了自动校时软件,可能会导致VC6生成的程序在调试时出现时间戳错误,表现为编译提示:
LINK : fatal error LNK1136: invalid or bad format of 'xxx.pdb'这个问题看起来是PDB文件损坏,实际是时间戳不一致导致的。解决办法是调整系统的“日期和时间”设置里的时区,确保与当前实际时区一致,并开启自动同步时间。更彻底的方案是设置系统环境变量TZ:
创建一个名为TZ的系统环境变量,值为UTC,或者你所在时区的标准偏移量,比如UTC-8。设置后重启VC6,再编译一次。这个方案我在某台时区设置混乱的机器上很奏效,解决了顽固的LNK1136错误。
4. 工作流优化:提高VC6在Win11上的开发效率
4.1 编辑器与外部工具的现代化配置
VC6的编辑器比现代IDE落后太多,但真要在项目里用它写代码,几个配置能极大改善体验。
首先是语法高亮。VC6默认没有代码着色,需要装第三方插件。推荐安装一个免费的“Visual Assist”早期版本插件,或者用老牌的“VC6增强插件”方案。装上后,关键字、变量、常量的颜色都能自定义,代码可读性大幅提高。
其次是自动补全。VC6的自动补全能力很弱,基本只对成员变量和函数名做简单匹配。如果不想装插件,可以改配置让VC6对“Ctrl+Space”的响应更积极:工具-选项-编辑器-“自动列出成员”勾选上,并设置“键入时延迟”为最短的100ms。实际上,我建议装一个现代的独立代码编辑器当主力编辑环境,VSCode或Notepad++,配合VC6做编译调试,文件保存后VC6自动重载。这个工作流虽然需要两窗口切换,但编码体验比在VC6里硬写强得多。
最后是文件编码。VC6的编辑器默认按ANSI读文件,不认UTF-8。项目文件尽量统一为GBK或GB2312编码,实在需要用UTF-8的项目,就配一个外部编辑器负责转换。我在某个跨平台项目里就吃过这亏:在VSCode里改了几下代码,保存成UTF-8,回来VC6一编译,所有中文字符串全乱了。从那之后我就定了规矩:谁在VC6项目里改文件,必须用VC6的编码方式。
4.2 命令行编译与脚本化构建
VC6的IDE自身构建系统老套,但在Win11上使用命令行方式编译代码反而更稳定,因为绕过了一些GUI组件的兼容性问题。
准备工作是让命令行能调用VC6的编译器。方法是在“环境变量”的PATH中加入:
C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin然后在CMD里输入cl,如果能出现编译器版本信息,说明路径正确。
写一个简单的构建脚本示例(批处理):
@echo off call "C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT" cl /nologo /EHsc /W3 /I. /c main.cpp link /nologo /SUBSYSTEM:CONSOLE main.obj这套方式我在Win11上跑得很稳。比IDE构建稳定的原因在于绕过了IDE中不稳定的GUI交互层和资源编辑器的兼容性问题。对于持续集成场景,这个脚本化构建更有价值——你可以把它挂到自动化流水线里,实现VC6项目的自动编译。
4.3 资源编辑器的妥善使用
VC6的资源编辑器(.rc文件编辑)在Win11上问题不少。具体的症状是打开对话框编辑器时,控件要么显示异常,要么拖动卡顿,要么保存时文件损坏。
Windows 11的高DPI缩放是罪魁祸首。VC6的对话框编辑器不感知DPI,当你系统缩放比例不是100%时(很多笔记本是150%),它绘制的控件位置和实际保存的坐标会错位。
解决办法是给VC6的MSDEV.EXE设置“高DPI缩放替代”:
- 右键MSDEV.EXE,属性-兼容性-更改高DPI设置。
- 勾选“替代高DPI缩放行为”,缩放执行选“应用程序”。
- 重启VC6。
实测中,设置“应用程序”后,资源编辑器的控件坐标不再错乱。如果你的项目主要用代码直接写界面类(比如动态创建控件),资源编辑器用得少,也可以放着不管。反正对老VC6和Win11的组合,能用代码解决的问题,少碰可视化编辑器,省心不少。
5. 常见问题与排查技巧实录
5.1 编译链接:LNK1104与LNK2001
VC6在Win11上编译报链接错误,最烦人的当属这两个:
LNK1104: cannot open file "LIBCMTD.lib"这个一般在装了多版本Visual Studio的机器上出现。原因是VC6默认的库目录被新版的库目录干扰,或者查找顺序被改变。解决方法是尽量不用新版VS去“升级”旧工程的默认搜索路径,或者手动在Project Settings的Link页签里把“Additional library directories”明确指向旧库目录:C:\Program Files (x86)\Microsoft Visual Studio\VC98\LIB。
LNK2001: unresolved external symbol _main这个常见于Win11用户新建控制台程序时因为没选对入口点导致。在VC6里新建项目要选“Win32 Console Application”,然后在下一步选“An empty project”,自己添加源文件。如果选了带/SUBSYSTEM:WINDOWS的工程类型,又没有提供WinMain,链接器就会报_main未解析。我见过一个初学者卡在这报错上纠结了一整天,最后发现是建工程时选错类型。
5.2 编译时报“Cannot open include file: 'afxwin.h'”
这表示MFC的头文件路径没配置。在VC6的“工具-选项-目录”里,把“Include files”路径加上:
C:\Program Files (x86)\Microsoft Visual Studio\VC98\ATL\INCLUDE C:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\INCLUDE“Library files”路径加上:
C:\Program Files (x86)\Microsoft Visual Studio\VC98\ATL\LIB C:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\LIB路径配好后重编译。这问题在Win11上高发的原因是新版VS的目录设置被VC6误读,或者安装时没选MFC组件。实在不行检查一下安装时是否有勾选MFC和ATL。
5.3 程序运行崩溃:入口点或内存错误
在VC6里编译出来的程序,在Win11上运行时一般有三种问题:
第一是入口点找不到。系统弹窗“无法定位程序输入点xxx于动态链接库”。这是因为老的MFC42.DLL版本太旧或者缺失。解决办法是确保系统能拿到正确的MFC42.DLL。Win11自带MFC42.DLL,但可能是旧版本。可以在VC6的安装目录里找到MFC\LIB\下的库文件,或在系统目录手动注册:
regsvr32 "C:\Windows\SysWOW64\MFC42.DLL"第二是内存访问错误。如果在调试时弹出内存读写错误,多半是代码本身有指针问题,这种情况下VC6调试器在win11上的表现反而不如新版VS清晰,建议换用“WinDbg”等外部调试器或者直接用新版VS加载老项目调试(如果代码兼容)。
第三是栈溢出。VC6默认栈大小是1MB,在Win11的默认执行策略下,线程栈增长策略变了,某些代码在Win7上不溢出的在Win11上就溢出了。脚本或代码里可以手动加/STACK:size链接选项来调大栈,比如在Project Settings的Link页签里加上/STACK:0x2000000(32MB)。
5.4 安装彻底失败后的清理与重装
整个安装过程中最让人崩溃的事情就是安装失败后,系统残留一堆半坏的注册表项和文件目录,导致第二次安装同样失败。这种情况下别急着重装,先执行“彻底清理三连”:
- 卸载残留:如果“控制面板-卸载程序”里能看到VC6,先卸载。如果找不到,直接跳到下一步。
- 删目录:手动删除
C:\Program Files (x86)\Microsoft Visual Studio整个目录。 - 清注册表:
Win+R输入regedit,展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\6.0,右键删除整个项。接着检查HKEY_CURRENT_USER\SOFTWARE\Microsoft\DevStudio\6.0,一并删除。
清完后重启系统,再执行方案一或方案二。我遇到过很多人反复安装失败,其实就是第一次的残留没清干净,尤其是注册表里卡着旧的组件注册信息,导致新安装程序总认为自己已经装过。
5.5 问题排查速查表
| 症状 | 可能原因 | 解决方案 |
|---|---|---|
| 安装程序秒退 | 安装引导与Win11内核不兼容 | 解压ISO、设置兼容性Win98、以管理员运行 |
| 安装中途回滚 | 组件注册失败 | 自定义安装时取消ADO/RDS等组件 |
| MSDEV.EXE启动崩溃 | 调试DLL兼容性问题 | 加/L启动参数、替换修复版DM.DLL |
| 断点无法命中 | 调试器兼容性问题 | 替换修复版DM.DLL、关闭“调试-异常”里的某些选项 |
| 资源编辑器控件错乱 | 高DPI缩放不兼容 | 设置高DPI缩放替代为“应用程序” |
| 中文注释乱码 | 编码格式不统一 | 统一为GB2312编码保存,或用宋体显示 |
| LNK1104 | 库搜索路径冲突 | 手动指定附加库目录为VC98\LIB |
| LNK2001 | 工程类型/入口点错误 | 使用Win32 Console Application空项目 |
| LNK1136时间戳错误 | 时区设置错误或PDB损坏 | 设置TZ环境变量、清空Debug目录重新编译 |
6. 关于替代方案的个人经验
VC6在Win11上能用,但如果你是为了学习C++或者处理新项目,我真心建议认真考虑一下替代工具。VC6的语法标准停留在C++98初期,很多现代的C++11/14/17特性它都不支持,真要用它跑新代码,光写模板就一堆错误。
对于老项目的日常维护,我推荐的做法是:在VMware或VirtualBox里装Windows XP(注意XP系统本身不再有安全更新,仅用于离线开发和测试,不要联网),VC6在那个环境里是原生运行,没有任何兼容性问题。这个方案唯一的代价是切换系统的成本,但对老项目的稳定维护来说,这个成本值得。
如果只是上课交作业、跑课程设计,两三个文件的项目,VC6原版或绿色版就够用。但如果老师要求MFC对话框、可视化界面,那么VC6的向导还是只能靠虚拟机方案。我在帮某高校学生调一个MFC课设时就实测过:Win11上VC6即便装好了,新建MFC工程向导生成的代码都会缺一些关键部分,导致编译不通过,退回虚拟机后三十分钟搞定。
7. 结尾的几句实在话
折腾VC6在Win11上的安装,本质上是在和二十年前的技术债搏斗。每次我配置完一台新机器,都会感叹一句:这玩意儿真的该退休了。但现实是,很多老项目的代码还在跑、还在维护,有些学校和企业为了兼容历史资产,依然要求使用VC6。既然绕不开,那就把它弄顺。
我个人在实际操作中的体会是,Win11 24H2上最稳妥的组合是“完整解压原版ISO + 兼容性设置 + SP6补丁 + 修复版DM.DLL”,一次配置好之后,编译、调试、看源码都能稳定运行。如果你只是想验证某个老代码片段,绿色版比完整安装更省事。还有一个很少有人提的小技巧:装好VC6后,在“工具-选项-目录”里把系统目录的顺序调整一下,让VC98\INCLUDE排在系统目录前面,能避免因为新版SDK的头文件混进来导致的编译错误。这个细节我排查了很久才定位到,建议直接抄进你的配置文件里。
最后再说一件容易被忽略的事:VC6生成的工程文件是.dsw和.dsp,新版Visual Studio虽然能转换,但转换后代码往往出现一堆警告和错误。所以备份好原始工程文件,永远不要让新版VS直接覆写你的旧工程。毕竟,老项目的资产价值有时候比技术本身更重要。