你用VC调试程序时经常死机吗

来源:互联网 发布:欧洲 知乎 编辑:程序博客网 时间:2024/05/01 15:23
TNTGina - 你用VC调试程序时经常死机吗
| |
[不指定 2006/05/31 12:41 | by Yonsm ]
如果是,而且又不想忍受漫长的注销过程,试试看这个 Gina 吧——TNTGina——用于 Terminate MSVC 的 NTGina。
  • 缘起:
    VC 在调试多线程程序(GraphEdit 调试 DShow Filter 时,基本上都是)的时候经常死机,特别是在 Windows XP 中。
    此时按 Ctrl+Alt+Del 有效,但唤出任务管理器后,却无法操作。只好作注销或重启处理:(
  • 注册:
    保存到系统登录时能访问到的路径上,用 RegSvr32.exe TNTGina.dll 注册它。重新启动系统后才能生效。
    (这不是一个COM组件,只不过为了注册和注销方便,导出了两个函数,里面其实只是写了注册表的一个键值,改写了GinaDLL的路径)。
  • 注销:
    RegSvr32.exe /u TNTGina.dll
  • 用法:
    注册这个 Gina 后,问题就接解决了——虽然不能从根本上解决问题——不能防止VC死掉——但却可以:
    按亮 ScrollLock,然后按 Ctrl+Alt+Del,MSVC 马上被终止掉,系统恢复用户界面响应。重新打开VC调试吧……
  • 原理:
    这是一个 Gina DLL,Gina 是负责处理系统登录等用户界面操作的DLL,且 MS 允许用户重写它。
    于是我写了这个 DLL,处理了 SrcollLock 高亮状态下的 Ctrl+Alt+Del 安全事件,并强制终止 MSVC 进程。
    对于其它情况处理,则转交给原来的 MSGina.dll。
  • 后话:
    这个 DLL 是使用 AheadLib 自动生成的,然后添加了一点操作代码。
  • 下载:
    TNTGina (包括代码)
原创粉丝点击