Вопрос

Я запускаю мою программу в debugmode, а затем бросил ее, закрывая основную форму.

В окне вывода я могу увидеть следующее сообщение:

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

Интересно, что означает «Uninit: все еще жив 1» означает.

кто-нибудь знает ??? Я всегда очень боюсь чем-то неожиданного возникновения в какой-то момент времени, и сообщение «все еще живое» на самом деле не звучит многообещающим.

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

Это было полезно?

Решение

Это диагностическое сообщение, которое было создано с Outductdebugstring () . Он присутствует в одном из DLL, на которых у вас есть зависимость. Точное значение требует интерпретации, но «Uninit» коротко для «неинициализации», то, что происходит, когда DLL выгружается. И «еще жив 1», вероятно, значит, программатор DLL Miffed о вас не правильно закрывают его компонент, прежде чем дернуть мат.

Сообщение не хватает линейного перерыва («\ n»), довольно стандартная ошибка, которую программисты делают, когда они используют выключатель DEPTEBUGSTRING.

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

Более надежный использует процесс проводника Sysinternals. Выберите свой процесс и нажмите Ctrl + D, чтобы пересмотреть загруженные ее DLL. Учитывая качество сообщения, вы, вероятно, можете пропустить те, которые имеют авторские права Microsoft. Щелкните правой кнопкой мыши dlls One-By-One и посмотрите на вкладку «Строки», чтобы увидеть строки внутри DLL. Как только вы найдете его, вы должны знать, кому принадлежит этот код из имени DLL. Спросите их правильно отключить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top