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. Спросите их, как правильно отключиться.