自己的系统是Win7,装上了VC6,调试一段小代码之后再次编译的时候就提示如下的错误:
LINK: fatal error LNK1168: cannot open Debug/1.exe for writing
意思就是编译要生成同名的 1.exe,但是此文件文件无法写入,原因呢一般就是该文件被打开了,所以无法被覆盖。那么既然打开了咱们就给他关闭呗?
将 VC6 退出调试状态,这个没问题,VC6可以退出。
但是,大家会遇到两种情况:
1、该进程无法被结束,即使使用任务管理器也不行。Windows系统的任务栏上会留下前面调试时产生的进程图标。这时如果再次按下F5调试,并按下Shift+F5后,任务栏上会留下两个这样的图标,这两个进程都可以在任务管理器上看到,不占CPU资源,但占用一定的内存;
2、任务管理器中无法找到 1.exe 的进程,即使使用 OpenFilesView 工具也不行。但就是提示该文件无法被写入,应该还是在打开的状态。
唯一的解决办法就是:直接关闭VC6,并重新开启。这样就可以了,但是每次都这么操作一遍实在是太麻烦了。。。
(备注:如果以调试模式启动程序,并且程序是自己退出的,不是通过VC6停止调试的,那么不会有上面的问题。)
怎么办呢?肯定是有解决办法的!!!
引起这一问题的根源是2个DLL,DM.dll(6.0.8168.0) 和 TLLOC.dll(6.0.8168.0)。这是在安装完VC6之后对应的文件版本号,当你给VC6打上了Sp6补丁之后,DM.dll 的版本就更新成 6.0.9782.0,但 TLLOC.dll 却没有更新,所以就导致这一问题的出现。
解决方法:
1、首先确定你的VC6已经打上了Sp6的补丁,查看方法:C:\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE 文件正确的版本是6.0.9782.2;
2、再次下载 TLLOC.dll(版本是:6.0.8168.292)将下载的版本替换目录“C:\Microsoft Visual Studio\Common\MSDev98\Bin\TLLOC.dll”这样VC6在 Win7 或者 Win10 x64位的系统调试时,就可以任意退出了。