我是在前段时间才知道有VC6 Ultimate这么个东西,算是后知后觉了。从它托管的GitLab上的信息看,它已经发布了四五之久。而且不用任何怀疑,它1000000%是非官方的。通过安装、调教,有几个感概:
1. 微软通过Visual C++ 6.0提供了一个使用MFC类库和COM技术的绝佳典范。也由于软件架构的原因,使第三方魔改有了可能。
2. Visual C++ 6.0的架构虽然没有现在Visual Studio那么先进,但在二十五年前IDE领域一骑绝尘不是没有原因。当然现在Visual Studio也是宇宙最强IDE。只不过从所占空间容量上,VC6优势明显。当然弱点也很多,导致后来微软抛弃了这套架构。当时微软就已经考虑了VC6支持多平台多SDK的情况,但从调试器角度看,明显又考虑不全面,或者比较匆忙。
3. Dr. Hoiby也是一个牛人。对VC6进行增强往往通过插件的方式,通过分析Dr. Hoiby没有通过这个方式。他通过改变启动程序的方式,使定制更加的灵活,尤其不使用注册表的方式,很是惊艳。
虽然有一些感概,也能从分析VC6 Ultimate的过程学到一些东西。但从使用角度,我自己仍然会继续采用Windows XP虚拟机+官方VC6的方式,而不是使用VC6 Ultimate。原因很简单,VC6 Ultimate有很多功能我是陌生的,当然这也可能是VC6 Ultimate出彩的地方;我不想面对一些莫名其妙的问题。
下面简述一下VC6 Ultimate的安装、调教过程,以供参考。
VC6Ultimate下载地址:https://gitlab.com/VC6Ultimate
其他文件下载地址:https://github.com/plumeqi
B站视频(你还在用VC5吗?):https://www.bilibili.com/video/BV1mN411g7bJ/
B站视频(VC6 Ultimate安装):https://www.bilibili.com/video/BV1PN41137Q4/
B站视频(VC6 Ultimate调教):
一、从GitLab下载VC6 Ultimate,解压缩。假定解压缩到了D:\VC6Ultimate下。
二、双击运行create_shorts.js脚本,生成两个快捷方式:Visual C++ 6.0和Visual C++ 7.0
三、如果需要Visual Assist X,那么用管理员身份运行CMD,并进入D:\VC6Ultimate\VisualUltimate\AddIns\Visual Assist X目录,运行regsvr32 VAssist.dll注册。如果VAX过期自行解决,VAX版本为10.7.1908
四、复制FileTool.dll到D:\VC6Ultimate\VisualUltimate\AddIns\,regsvr32 FileTool.dll进行注册。编辑D:\VC6Ultimate\VisualUltimate\VS_Config\DevStudio#6.0.hjson文件,红色为添加的内容,注意路径要正确。
"AddIns":{
"VisualAssist.DSAddIn.1":{
"":"1"
"Description'":"Visual Assist X adds new functionality to the VC++ editor."
"DisplayName":"Visual Assist X Add-in"
"Filename":"..\\..\\..\\VisualUltimate\\AddIns\\Visual Assist X\\VAssist.dll"
}
"FileTool.DSAddIn.1":{
"":"1"
"Description'":"Adds commands to Developer Studio which perform useful functions"
"DisplayName":"FileTool Developer Studio Add-in"
"Filename":"..\\..\\..\\VisualUltimate\\AddIns\\FileTool.dll"
}
}
新建文件保存时会出问题,通过这个插件可能会解决。参见https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/241396
五、复制YaHei.Consolas.1.12.ttf到D:\VC6Ultimate\VisualUltimate\Fonts目录下。编辑D:\VC6Ultimate\VisualUltimate\VS_Config\DevStudio#6.0.hjson文件,全部替换HobTiny为YaHei Consolas Hybrid
六、替换Project_Templates的相应文件。
七、替换rc.exe。因为VC6 Ultimate在编译resource时,有时会失败。我decompile官方的rc.exe,重新compile了一个rc.exe。
八、启动时如果出现Can't load libclang.dll,从https://aka.ms/vs/16/release/vc_redist.x86.exe下载Visual Studio 2015 Redistributable Package x86 version进行安装。如果打开文件,Document视图不显示,点击Document视图程序挂起,则OpenGL渲染有问题,一般发生在虚拟机里运行,并且我发现安装soft opengl也不能解决。
九、安装WndTab插件不稳定。编辑器只支持ASCII。Debug版本不支持Precompiled file header。WIN64项目不能Debug。Shift+F5停止Debug也可能有问题。
十、自行体验500+功能
Below is English description of readme.md of github.
### VC6 Ultimate adjustment
I found VC6 Ultimate and try to use it. But I found that there are some problems while you use it. Below is my adjustments.
1. Download VC6 Ultimate frome GitLab: https://gitlab.com/VC6Ultimate
2. Uncompress. Create shortcuts via run create_shortcuts.js (double click to run).
3. Run CMD with Administrator, enter to VisualUltimate\Addins\Visual Assist X\, run regsvr32 VAssist.dll
4. Copy FileTool.dll to VC6Ultimate\Addins\, run regsvr32 FileTool.dll. Add below into AddIns block of VisualUltimate\VS_Config\DevStudio#6.0.hjson file.
"AddIns":{
......
"FileTool.DSAddIn.1":{
"":"1"
"Description'":"Adds commands to Developer Studio which perform useful functions"
"DisplayName":"FileTool Developer Studio Add-in"
"Filename":"..\\..\\..\\VisualUltimate\\AddIns\\FileTool.dll"
}
}
When you new file and save, VC6 will hang and crash. Maybe this is a workaround. See also: https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/241396
5. I suffer font of Document View. Copy YaHei.Consolas.1.12.ttf to VisualUltimate\Fonts folder, and all replace HobTiny to YaHei Consolas Hybrid in VisualUltimate\VS_Config\DevStudio#6.0.hjson file.
6. The projects created by project template CAN NOT compile pass. I modified these templates. Copy and paste Project_Templates to VisualUltimate\Project_Templates and replace the files with same name.
7. Some resources can't be compiled. rc.exe shipped with VC6Ultimate can't compile resource from VC6 wizard project. I change to official rc.exe, but there is a compatibility problem. official rc.exe is not compatible with win10, but it can run. It is simple to rewrite rc.exe, because whole of functions is at rcdll.dll. I decompile official and recompile it. You can replace it with the rc.exe I recompiled when you get a RCXXXX error.
8. Can't load libclang.dll when launch. You need install Visual C++ 2015 Redistributable Package x86 version, because VC6 Ultimate is only x86 version. You can download it from https://aka.ms/vs/16/release/vc_redist.x86.exe or https://www.microsoft.com/zh-CN/download/details.aspx?id=48145.
Document View can't show file content when you open a file. It is an opengl render problem. Usually it occurred in virtual machine. I have no way to resolve it even though soft opengl.
9. Document View is not subclassed by VAX. Tested and abandoned addins:WndTab is not stable. VCExtend can't zoomin. VC6LineNumerAddin can't display.
10. Editor only supports ASCII. Sometimes debug can't stop via Shift+F5. Not support WIN64 debug. If can't compile WIN64Debug, try to remove /GZ.
11. It is up to discover and experience more.