Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DLL и УПРАВЛЯЕМЫЙ КОД, Зависание DLL связанное с OS LoaderLock 
:(
    Опции темы
YuriyRus
  Дата 16.11.2010, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.11.2010

Репутация: нет
Всего: нет



Здравствуйте, все для кто знает не только английский или немецкий, или ..., но и такие "иностраные языки" как, например, "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:
Код

HINSTANCE hDLL = NULL;

#pragma unmanaged
BOOL WINAPI DllMain
(
    HANDLE hinstDLL,
    DWORD dwReason,
    LPVOID lpvReserved
)
{
    try
    {
        switch (dwReason)
        {
            case DLL_PROCESS_ATTACH:

                hDLL = (HINSTANCE)hinstDLL;

            break;

            case DLL_PROCESS_DETACH:
                                     
              return TRUE;
        }
    }
    catch (...)
    {
        return FALSE;
    }
    return TRUE;
}



Где тут вызовы функций, которые завязаны на управляемом коде я так и не нашёл. В DLL происходит MFC-инициализация картинки, пробовал её отключать - эффекта нет - всё равно при закрытии прога в произвольные моменты видёт себя также.

Тогда полез в инет и начал изучать OS Loader Lock
LoaderLock

Тогда как раз и написал дерективу
Код

#pragma unmanaged



, но не помогло. smile 

До сих пор ломаю голову, где у меня дырка, т. к. шарповская прога работает и с другими DLL-ками, но таких проблем как у меня ни у кого нет. smile  smile  smile 

Может кто-то уже сталкивался с такими припятсвиями на пути стаблиьно работающей проги.. ) Поделитесь, плз., знаниями.  

PS: Заранее спасибо всем, кто участвует в обсуждении.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.