VB.NET Странное выходное сообщение "Uninit: Still Alive 1"

Я запускаю свою программу в DebugMode и затем закрываю основную форму.

В окне вывода я вижу следующее сообщение:

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

Интересно, что означает "Uninit: Still Alive 1".

Кто-нибудь знает??? Я всегда очень боюсь чего-то неожиданного, происходящего в какой-то момент времени, и сообщение "Все еще жив" не кажется мне многообещающим.

Спасибо вам за помощь!

1 ответ

Решение

Это диагностическое сообщение, которое было сгенерировано с помощью OutputDebugString (). Он присутствует в одной из библиотек DLL, от которых вы зависите. Точное значение требует интерпретации, но "Uninit" - это сокращение от "Uninitialize", то есть, когда DLL выгружается. И "Still Alive 1", вероятно, будет означать, что программист DLL недоволен тем, что вы не выключили его компонент должным образом, прежде чем дернули коврик.

В сообщении отсутствует разрыв строки ("\n"), довольно стандартная ошибка, которую делают программисты, когда используют OutputDebugString.

Два основных способа найти DLL, которая делает это. Первый - включить неуправляемую отладку с помощью Project + Properties, вкладка "Отладка", установить флажок "Включить отладку собственного кода". Уведомление о разгрузке DLL должно быть близко к диагностическому сообщению.

Более надежным является использование Process Explorer от SysInternals. Выберите ваш процесс и нажмите Ctrl+D, чтобы вывести список библиотек DLL, которые он загрузил. Учитывая качество сообщения, вы, вероятно, можете пропустить те, которые имеют авторские права Microsoft. Щелкните правой кнопкой мыши библиотеки DLL один за другим и посмотрите на вкладку "Строки", чтобы увидеть строки внутри библиотеки DLL. Найдя его, вы должны знать, кому принадлежит этот код, из имени DLL. Спросите их, как правильно отключиться.

Другие вопросы по тегам