VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 1333|回复: 2

[分享] 解决VC6在Win7或Win10下调试无法结束进程的Bug

[复制链接]
51_avatar_middle
online_admins Syc 发表于 2018-3-17 23:05:12 | 显示全部楼层 |阅读模式
很久之前自己的系统是 WindowsXP,配合VC6编译器,使用起来一点问题没有,调试模式也都没问题。这几天已经将系统升级到了Win7,还有不少学员的系统直接升级到了Win10。原本也是不想用VC6了,毕竟太老了,对C++的标准支持的也很差,使用起来也没有新版的vs编译器方便,差太多了。当然也不是一无是处,如果对于生成的EXE或者DLL的文件体积有要求的话,VC6还是不错的,因为版本比较老,所以生成的文件体积也是很小的。现在系统中装的是VS2013。但是有时候网上的一些代码是VC6的,而且一些学员问的问题也是基于VC6的,所以没办法最后我的解决方法就是装个XP系统的虚拟机,之后在虚拟机中装上VC6,之后打上Sp6的补丁,使用起来也还行,也很流畅。总之,VC6装在Win7或者Win10系统上总感觉不搭,差太多了。

详情见:编程虚拟机专用精简系统:
https://www.cctry.com/thread-275929-1-1.html

近日,有学员遇到了这个问题,自己的系统是Win7,装上了VC6,调试一段小代码之后再次编译的时候就提示如下的错误:
解决VC6在Win7或Win10下调试无法结束进程的Bug

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位的系统调试时,就可以任意退出了。

新版本的 DM.dll(版本:6.0.9782.0)、TLLOC.dll(版本:6.0.8168.292)已经打包在附件中供大家下载:
解决VC6在Win7或Win10下调试无法结束进程的Bug DM.dll (104.07 KB, 下载次数: 24)




上一篇:分享一个获得物理网卡MAC地址的函数
下一篇:让ListCtrl的列头支持多行显示

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

98_avatar_middle
在线会员 tomok 发表于 2018-3-19 11:34:44 | 显示全部楼层
谢谢 分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

16_avatar_middle
在线会员 boxxie 发表于 2018-3-21 11:11:59 | 显示全部楼层
解决VC6在Win7或Win10下调试无法结束进程的Bug
多谢楼主分享哟

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-12-11 02:54

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表