VB.NET奇怪的输出消息"Uninit:Still Alive 1"

tmi*_*hty 3 vb.net debugging output-window visual-studio-2012

我在DebugMode中运行我的程序,然后通过关闭主窗体退出它.

在输出窗口中,我可以看到以下消息:

Uninit : Still Alive 1The program "[1432] App1.exe: Managed (v4.0.30319)" was ended with code 0 (0x0).
Run Code Online (Sandbox Code Playgroud)

我想知道"Uninit:Still Alive 1"是什么意思.

有人知道吗??? 我总是害怕在某些时候出现意想不到的事情,并且"仍然活着"的信息对我来说并不是很有希望.

感谢您的帮助!

Han*_*ant 14

它是使用OutputDebugString()生成的诊断消息.它存在于您依赖的其中一个DLL中.确切的含义需要解释,但"Uninit"是"Uninitialize"的缩写,是一种DLL被卸载时发生的事情.并且"仍然活着1"可能意味着DLL的程序员对你没有正确地关闭他的组件在你猛拉地板垫之前感到恼火.

消息缺少换行符("\n"),这是程序员在使用OutputDebugString时犯的一个非常标准的错误.

找到执行此操作的DLL的两种基本方法.首先是使用Project + Properties,Debug选项卡打开非托管调试,勾选"启用本机代码调试"复选框.DLL卸载通知应该接近诊断消息.

更可靠的是使用SysInternals的Process Explorer.选择您的进程并按Ctrl + D列出它已加载的DLL.鉴于邮件的质量,您可以跳过具有Microsoft版权的邮件.右键单击DLL,然后查看"字符串"选项卡以查看DLL中的字符串.一旦找到它,您应该知道谁拥有DLL名称中的代码.问他们如何正确关闭.