Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > DLL и УПРАВЛЯЕМЫЙ КОД |
Автор: YuriyRus 16.11.2010, 14:04 | ||||
Здравствуйте, все для кто знает не только английский или немецкий, или ..., но и такие "иностраные языки" как, например, "C", "C++", "С#", "Java" и т. д. ) На днях при разработке DLL на C++ (Studio 2005) под шарповскую прогу столкнулся с проблемой: При заврешении работы программы при отладке (проект DEBUG) иногда вижу такое сообщение: "Managed dbug Assistant 'LoaderLock' has detected a problem in <имя проги>. Additional Information: Attempting managed execution inside OS Loader lock. Do not Attempting to run managed code inside a DllMain or image initialization function since doing so can cause to application to hang." Короче, некий LoaderLock, он же "Помощник по отладке управляемого" говорит мне, что мол я там применяю упарвляемый код в рамках выполнения DllMain или функции инициализации картинки. И что такой код может привести к зависанию приложения. Так оно и получается, при релизе прога иногда при завершении работы выдаёт сообщение: "The appkication has requested the Runtime to terminate it unusual way..." и вешается. Завершиить прогу можно только через диспетчер задач. Посмотрел свой DllMain:
Где тут вызовы функций, которые завязаны на управляемом коде я так и не нашёл. В DLL происходит MFC-инициализация картинки, пробовал её отключать - эффекта нет - всё равно при закрытии прога в произвольные моменты видёт себя также. Тогда полез в инет и начал изучать OS Loader Lock http://msdn.microsoft.com/ru-ru/library/ms172219.aspx Тогда как раз и написал дерективу
, но не помогло. ![]() До сих пор ломаю голову, где у меня дырка, т. к. шарповская прога работает и с другими DLL-ками, но таких проблем как у меня ни у кого нет. ![]() ![]() ![]() Может кто-то уже сталкивался с такими припятсвиями на пути стаблиьно работающей проги.. ) Поделитесь, плз., знаниями. PS: Заранее спасибо всем, кто участвует в обсуждении. |