Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 10.07.12 14:27
Оценка: -1
Собственно вопрос в теме.
Не могу подключить дллку через LoadLibrary.
GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?
Re: Ошибка загрузки DLL -529697949
От: Pavel Dvorkin Россия  
Дата: 10.07.12 14:29
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>Собственно вопрос в теме.

C>Не могу подключить дллку через LoadLibrary.
C>GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?

Не бывает ИМХО такой ошибки. Покажи код.
With best regards
Pavel Dvorkin
Re: Ошибка загрузки DLL -529697949
От: B0FEE664  
Дата: 10.07.12 14:41
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>Собственно вопрос в теме.

C>Не могу подключить дллку через LoadLibrary.
C>GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?

Скорее всего dll бросила исключение во время загрузки. И это исключение никто не поймал.
И каждый день — без права на ошибку...
Re: Ошибка загрузки DLL -529697949
От: LaptevVV Россия  
Дата: 10.07.12 15:33
Оценка: +1
Здравствуйте, cupuyc., Вы писали:

C>Собственно вопрос в теме.

C>Не могу подключить дллку через LoadLibrary.
C>GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?
Выведи код ошибки в шестнадцатеричном виде.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Ошибка загрузки DLL -529697949
От: breee breee  
Дата: 10.07.12 15:44
Оценка: 3 (1)
Здравствуйте, cupuyc., Вы писали:

C>Собственно вопрос в теме.

C>Не могу подключить дллку через LoadLibrary.
C>GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?

Вставляем код в виндовый калькулятор в режиме "Программист", выбираем 4 байта, переключаем на Hex, получаем код E06D7363. Гуглим:
http://support.microsoft.com/kb/185294
http://blogs.msdn.com/b/oldnewthing/archive/2010/07/30/10044061.aspx

Похоже, вот эта
Автор: B0FEE664
Дата: 10.07.12
версия верна.
Re[2]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 05:48
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, cupuyc., Вы писали:


C>>Собственно вопрос в теме.

C>>Не могу подключить дллку через LoadLibrary.
C>>GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?

PD>Не бывает ИМХО такой ошибки. Покажи код.


бывает)
собственно программа написана только для проверки загружаемости библиотек большого проекта. В проекте есть схожая функция, она отрабатывает нормально без ошибок, а отдельная программа (код ниже) загружает только одну треть, остальные две трети выкидывают одну и ту же ошибку: -529697949 или в 16-тиричной E06D7363(спасибо breee breee).
вот код:

        WIN32_FIND_DATA FindFileData;
    HANDLE hFind;
    bool flag = true;
    int loaded = 0;
    int notLoaded = 0;

    hFind = FindFirstFile("*.dll", &FindFileData);
    
    CStdioFile file;
    file.Open("out.txt",CFile::modeReadWrite);

    while(flag)
    {
    HMODULE hLib;
        
            hLib = LoadLibrary(FindFileData.cFileName);


            if (hLib==NULL)
            {
                CString txt;
                 txt.Format("%s - %d - Not Loaded",FindFileData.cFileName,GetLastError());
                notLoaded++;
                file.WriteString(txt.GetBuffer(txt.GetLength()));
                file.WriteString("\n");
                cout << FindFileData.cFileName << " Not Loaded" << endl;
            }
            else
            {
                CString txt;
                txt.Format("%s - Loaded",FindFileData.cFileName);
                file.WriteString(txt.GetBuffer(txt.GetLength()));
                file.WriteString("\n");

                loaded++;
                cout << FindFileData.cFileName << " Loaded"<< endl;
                FreeLibrary(hLib);
            }
            

            if (FindNextFile(hFind, &FindFileData))
            {
                flag = 1;
            }
            else
                flag = 0;
    }
    
    FindClose(hFind);

    CString txt;
    txt.Format("-Loaded  %d-\n-NotLoaded  %d-",loaded, notLoaded);
    file.WriteString(txt.GetBuffer(txt.GetLength()));
    file.Close();
    
    cout << " Loaded - " << loaded << endl;
    cout << " NOT Loaded - " << notLoaded << endl;
    getch();
    }
Re[2]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 05:56
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, cupuyc., Вы писали:


C>>Собственно вопрос в теме.

C>>Не могу подключить дллку через LoadLibrary.
C>>GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?

BFE>Скорее всего dll бросила исключение во время загрузки. И это исключение никто не поймал.


а как перехватить это исключение ?
Re[3]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 07:02
Оценка:
Сделал как написано в решении http://support.microsoft.com/kb/185294.
Теперь при отладке вылетает сообщение:
Frst-chance exeption in TestingDll.exe (kernel32.dll): 0xE06D7363: Microsoft C++ Exception.
... и останавливается на дизассемблере в коде.
Вот только что мне теперь делать, я так и не знаю как исправить ошибку.
Re[4]: Ошибка загрузки DLL -529697949
От: breee breee  
Дата: 11.07.12 07:51
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>Сделал как написано в решении http://support.microsoft.com/kb/185294.

C> Теперь при отладке вылетает сообщение:
C> Frst-chance exeption in TestingDll.exe (kernel32.dll): 0xE06D7363: Microsoft C++ Exception.
C> ... и останавливается на дизассемблере в коде.
C> Вот только что мне теперь делать, я так и не знаю как исправить ошибку.

Что именно сделал? Выставил "Stop always"? Это не нужно.
Исключение скорее всего вылетает в функции DllMain той dll-ки, которую ты загружаешь. Тебе нужно посмотреть ее код, чтобы разобраться почему это происходит и пофиксить это.
Re[3]: Ошибка загрузки DLL -529697949
От: breee breee  
Дата: 11.07.12 07:59
Оценка:
Здравствуйте, cupuyc., Вы писали:

BFE>>Скорее всего dll бросила исключение во время загрузки. И это исключение никто не поймал.


C>а как перехватить это исключение ?


Можно начать с try-catch блока в функции DllMain. Что-то вроде:

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
{
    try
    {
        // старый код
    }
    catch (const std::exception& ex)
    {
        ::OutputDebugStringA(std::string("----------------- std::exception.what(): ") + ex.what());
        throw;
    }
    catch (...)
    {
        ::OutputDebugStringA("----------------- unexpected exception");
        throw;
    }
}


Если что-то поймается, разбираться почему это происходит.
Re[3]: Ошибка загрузки DLL -529697949
От: breee breee  
Дата: 11.07.12 08:11
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>
C>                 txt.Format("%s - %d - Not Loaded",FindFileData.cFileName,GetLastError());
C>


GetLastError возвращает беззнаковое целое. Ты же его форматируешь как знаковое — %d. Отсюда и непонятный код.
Re[4]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 08:13
Оценка:
Здравствуйте, breee breee, Вы писали:

BB>Здравствуйте, cupuyc., Вы писали:


BFE>>>Скорее всего dll бросила исключение во время загрузки. И это исключение никто не поймал.


C>>а как перехватить это исключение ?


BB>Можно начать с try-catch блока в функции DllMain. Что-то вроде:


BB>
BB>BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
BB>{
BB>    try
BB>    {
BB>        // старый код
BB>    }
BB>    catch (const std::exception& ex)
BB>    {
BB>        ::OutputDebugStringA(std::string("----------------- std::exception.what(): ") + ex.what());
BB>        throw;
BB>    }
BB>    catch (...)
BB>    {
BB>        ::OutputDebugStringA("----------------- unexpected exception");
BB>        throw;
BB>    }
BB>}
BB>


BB>Если что-то поймается, разбираться почему это происходит.


спасибо, попробую. но если я не имею доступа к исходникам дллки?
как я писал раньше вопрос в том что в проекте есть функция которая идентична написаной мной в отдельной программе(код выше), я тупо копипастил, причем эта функция вызывается из отдельной дллки, НО в проекте эта функция отрабатывает на все 100% дллок, а в отдельной программе одна треть не загружает и выкидывает эту ошибку. Меня вот это сбивает с толку.
Re[4]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 08:17
Оценка:
Здравствуйте, breee breee, Вы писали:

BB>Здравствуйте, cupuyc., Вы писали:


C>>
C>>                 txt.Format("%s - %d - Not Loaded",FindFileData.cFileName,GetLastError());
C>>


BB>GetLastError возвращает беззнаковое целое. Ты же его форматируешь как знаковое — %d. Отсюда и непонятный код.



да да , я уже это понял.
Re[5]: Ошибка загрузки DLL -529697949
От: breee breee  
Дата: 11.07.12 08:32
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>спасибо, попробую. но если я не имею доступа к исходникам дллки?

C>как я писал раньше вопрос в том что в проекте есть функция которая идентична написаной мной в отдельной программе(код выше), я тупо копипастил, причем эта функция вызывается из отдельной дллки, НО в проекте эта функция отрабатывает на все 100% дллок, а в отдельной программе одна треть не загружает и выкидывает эту ошибку. Меня вот это сбивает с толку.

Сложно сказать. Можно, например, попробовать положить отдельную программу в каталог, где находится проект. Или посмотреть повнимательнее проект, где код работает. Может, там что-то инициализируется, что в дальнейшем используется dll-ками.
Re[6]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 09:36
Оценка:
Здравствуйте, breee breee, Вы писали:

BB>Здравствуйте, cupuyc., Вы писали:


C>>спасибо, попробую. но если я не имею доступа к исходникам дллки?

C>>как я писал раньше вопрос в том что в проекте есть функция которая идентична написаной мной в отдельной программе(код выше), я тупо копипастил, причем эта функция вызывается из отдельной дллки, НО в проекте эта функция отрабатывает на все 100% дллок, а в отдельной программе одна треть не загружает и выкидывает эту ошибку. Меня вот это сбивает с толку.

BB>Сложно сказать. Можно, например, попробовать положить отдельную программу в каталог, где находится проект. Или посмотреть повнимательнее проект, где код работает. Может, там что-то инициализируется, что в дальнейшем используется dll-ками.


С перехватом сообщения не получилось, в Debug окно ничего не передает
поместил программу в папку с проектом, теперь ошибки другие, вот что выдает GetLastError():
126 — 7e;
127 — 7f;
1114 — 45а;
... и в основном эта 998 — 3e6;
Re[7]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 09:51
Оценка:
что говорит мсдн:
126 — 7e:
ERROR_MOD_NOT_FOUND
126 (0x7E)
The specified module could not be found.
... модуль есть.

127 — 7f:
ERROR_PROC_NOT_FOUND
127 (0x7F)
The specified procedure could not be found.
не могу понять что он имеет в виду, какая процедура...

1114 — 45а;
ERROR_DLL_INIT_FAILED
1114 (0x45A)
A dynamic link library (DLL) initialization routine failed.
... ошибка инициализации, где бы это посмотреть? в блоке DLLMain?

998 — 3e6;
ERROR_NOACCESS
998 (0x3E6)
Invalid access to memory location.
... почему нету доступа? я выгружаю те которые не нужны.
Re[8]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 11.07.12 09:54
Оценка:
с 126 разобрался остались одна 1114 одна 127 и куча 998...
Re[5]: Ошибка загрузки DLL -529697949
От: MasterZiv СССР  
Дата: 11.07.12 16:05
Оценка:
> Что именно сделал? Выставил "Stop always"? Это не нужно.
> Исключение скорее всего вылетает в функции DllMain той dll-ки, которую ты
> загружаешь. Тебе нужно посмотреть ее код, чтобы разобраться почему это
> происходит и пофиксить это.

Так надо в отладчике поставить break on exception и оно поймаецо.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Ошибка загрузки DLL -529697949
От: MasterZiv СССР  
Дата: 11.07.12 16:10
Оценка:
On 07/11/2012 12:13 PM, cupuyc. wrote:

> спасибо, попробую.


Не надо ловить исключение. Ты с этим ничего не сможешь сделать.
Надо включить ловилку в отладчике и глядеть где DLL-ка падает
при загрузке.

но если я не имею доступа к исходникам дллки?

А что ж ты тогда вообще хочешь ? Даже если ты найдёшь ошибку,
исправить без исходников всё равно невозможно.
Оно конечно может быть это какая-то наведённая ошибка, типа она
сама например грузить ещё третью ДЛЛ, и всё падает уже там, в третьей.
Тогда ты сможешь исправить это может быть.

> как я писал раньше вопрос в том что в проекте есть функция которая идентична

> написаной мной в отдельной программе(код выше), я тупо копипастил, причем эта
> функция вызывается из отдельной дллки, НО в проекте эта функция отрабатывает на
> все 100% дллок, а в отдельной программе одна треть не загружает и выкидывает эту
> ошибку. Меня вот это сбивает с толку.

Надо код смотреть и разбираться, так не скажешь.
Posted via RSDN NNTP Server 2.1 beta
Re[8]: Ошибка загрузки DLL -529697949
От: B0FEE664  
Дата: 12.07.12 00:04
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>что говорит мсдн:

C>126 — 7e:
C>ERROR_MOD_NOT_FOUND
C>126 (0x7E)
C>The specified module could not be found.
C>... модуль есть.

одна dll может зависит от другой dll.
И каждый день — без права на ошибку...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.