My VC6-debugged program cannot be terminated neither with Task Manager. Fixing it with other tools like ProcessKO by replacing DM.dll and TLLOC.dll with the latest versions resolves the problem!1. Download the fix
|
| file | Incorrect version | Correct version |
|---|---|---|
DM.dll |
6.0.8168.0 | 6.0.9782.0 |
TLLOC.dll |
6.0.8168.0 | 6.00.8168.292
|
2.) My VC6-debugged program cannot be terminated neither with Task Manager nor with ProcessKO. What should I do?
problem
After ending a debugging session with `Shift+F5`, the process sometimes remains as a "ghost" in the Task Manager. Even `taskkill /F` and external tools like ProcessKO are ineffective access is denied.
Caused
A version conflict between two DLLs in your Virtual Console 6 installation after Service Pack 6:
| `DM.dll` | 6.0.8168.0 | 6.0.9782.0 |
| `TLLOC.dll` | 6.0.8168.0 | 6.00.8168.292 |
The `DM.dll` was updated by SP6, the `TLLOC.dll` remained at the old version. This incompatibility leads to the described behavior on modern Windows versions (7/10/11).
Solution
Replace the two files in the directory:
C: \ Program Files ( x86 )\ Microsoft Visual Studio \ Common \ MSDev98 \ Bin \
installation
1. Close VC6 completely.
2. Navigate to the `Bin` folder (see path above).
3. Create a backup of the old files (e.g., rename them to `DM.dll.old` and `TLLOC.dll.old`).
4. Extract the ZIP file with the password `vc6`.
5. Copy the two DLLs into the `Bin` folder (overwriting the existing files).
6. Restart VC6.
After the replacement, `Shift+F5` should work properly again no more ghost processes.
3.) Why does `TerminateProcess` fail on debugged processes?
Technical background
Windows distinguishes between two process states:
- Exiting The process has called `ExitProcess` and is in the normal termination process.
- Terminating The process is terminated externally with `TerminateProcess`.
A debugged process terminated with `Shift+F5` enters the "exiting" state. In this state, the system denies any external intervention even with administrator privileges. `TerminateProcess` then fails with `ERROR_ACCESS_DENIED` (5).
consequence
No external tool (Task Manager, Process KO, `taskkill /F`) can terminate a process in the "exiting" state. The only solution is the DLL fix described above.
4.) Can ProcessKO still terminate debugged VC6 processes?
Short answer
No. ProcessKO uses `TerminateProcess` just like all other tools. If Windows classifies the process as "exiting", it denies all access.
What ProcessKO can do instead
ProcessKO can reliably terminate undebugged processes and is particularly useful for:
- Hanging applications without a debugger
- Processes with blocked windows
- Batch termination of multiple processes
Workaround for VC6 debugging processes (if download is not possible)
Always let the program finish running normally (e.g., via a custom "Exit" button with `::ExitProcess(0)`), instead of pressing `Shift+F5`. This completely bypasses the faulty mechanism.
5.) Safety Notice
- The DLLs are original Microsoft files, only password-protected due to virus scanners
. - After copying, check the digital signature (right-click → Properties → Digital Signatures → Microsoft Corporation).
6.) Conclusion
| situation | Recommendation |
|---|---|
| VC6 main development | Replace the DLLs (one-time only) then everything will run smoothly. |
| Occasional VC6 debugging | Workaround: Custom exit button with ::ExitProcess(0) |
| Terminate processes (not debugged) | Use ProcessKO reliable and easy
|
FAQ 51: Updated on: 15 April 2026 15:38
