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
версия верна.
Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 10.07.12 14:27
Оценка: -1
Собственно вопрос в теме.
Не могу подключить дллку через LoadLibrary.
GetLastError выдает номер ошибки "-529697949". В инете облазил не могу найти ни одного упоминания. Мот кто знает что за ошибка?
Re: Ошибка загрузки DLL -529697949
От: LaptevVV Россия  
Дата: 10.07.12 15:33
Оценка: +1
Здравствуйте, cupuyc., Вы писали:

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

C>Не могу подключить дллку через LoadLibrary.
C>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[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.
И каждый день — без права на ошибку...
Re[8]: Ошибка загрузки DLL -529697949
От: B0FEE664  
Дата: 12.07.12 00:07
Оценка:
Здравствуйте, cupuyc., Вы писали:

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

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

На всякий случай:
http://msdn.microsoft.com/ru-ru/library/ms235265.aspx
http://www.dependencywalker.com/
И каждый день — без права на ошибку...
Re[9]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 12.07.12 06:11
Оценка:
Здравствуйте, B0FEE664, Вы писали:

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


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

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

BFE>На всякий случай:

BFE>http://msdn.microsoft.com/ru-ru/library/ms235265.aspx
BFE>http://www.dependencywalker.com/

да, нашел я дллку walker`oм.

Подскажите плз, возможно ли из процесса А создать процесс Б и в процессе Б проверять загружаемость дллки, т.к. когда выгружаешь из процесса А дллку она тянет за собой несколько дллок которые необходимы процессу А и он падает.
Re[10]: Ошибка загрузки DLL -529697949
От: MasterZiv СССР  
Дата: 12.07.12 06:32
Оценка:
> Подскажите плз, возможно ли из процесса А создать процесс Б и в процессе Б
> проверять загружаемость дллки, т.к. когда выгружаешь из процесса А дллку она
> тянет за собой несколько дллок которые необходимы процессу А и он падает.

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


>> Подскажите плз, возможно ли из процесса А создать процесс Б и в процессе Б

>> проверять загружаемость дллки, т.к. когда выгружаешь из процесса А дллку она
>> тянет за собой несколько дллок которые необходимы процессу А и он падает.

MZ>Не может быть.


может и не может, но факт в том, что процесс падает когда вызывается функция FreeLibrary()
Re[12]: Ошибка загрузки DLL -529697949
От: MasterZiv СССР  
Дата: 12.07.12 14:20
Оценка:
> может и не может, но факт в том, что процесс падает когда вызывается функция
> FreeLibrary()

Ну так не вызывай FreeLibrary. Вообще, когда и откуда ты вызываешь эту функцию?
Она достаточно опасна. Например, нельзя её вызывать, если не уверен на 100%,
что никакой код из этой библиотеки не выполняется и что на данные этой
библиотеки нет ссылок. А иначе будет защита памяти.
Posted via RSDN NNTP Server 2.1 beta
Re[10]: Ошибка загрузки DLL -529697949
От: B0FEE664  
Дата: 12.07.12 20:25
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>Подскажите плз, возможно ли из процесса А создать процесс Б и в процессе Б проверять загружаемость дллки, т.к. когда выгружаешь из процесса А дллку она тянет за собой несколько дллок которые необходимы процессу А и он падает.

Вот ведь круто! А зачем? (с)

Это вот зачем вообще такое? Экономия на копейках или экзотика какая? Или учебная задача?
И каждый день — без права на ошибку...
Re[13]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 13.07.12 08:23
Оценка:
Здравствуйте, MasterZiv, Вы писали:


>> может и не может, но факт в том, что процесс падает когда вызывается функция

>> FreeLibrary()

MZ>Ну так не вызывай FreeLibrary. Вообще, когда и откуда ты вызываешь эту функцию?

MZ>Она достаточно опасна. Например, нельзя её вызывать, если не уверен на 100%,
MZ>что никакой код из этой библиотеки не выполняется и что на данные этой
MZ>библиотеки нет ссылок. А иначе будет защита памяти.

Собственно вот весь код:

HMODULE hLib;
hLib = LoadLibrary(object.fileNameFull);
if (hLib=NULL)
 AfxMessageBox(object.fileNameFull + " - Не загружена!");    
else
FreeLibrary(hLib);


Пробовал не вызывать FreeLibrary() тогда программа падает при выходе из нее.
Re[11]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 13.07.12 08:26
Оценка:
Здравствуйте, B0FEE664, Вы писали:

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


C>>Подскажите плз, возможно ли из процесса А создать процесс Б и в процессе Б проверять загружаемость дллки, т.к. когда выгружаешь из процесса А дллку она тянет за собой несколько дллок которые необходимы процессу А и он падает.

BFE>

BFE>Вот ведь круто! А зачем? (с)

BFE>Это вот зачем вообще такое? Экономия на копейках или экзотика какая? Или учебная задача?

Да вот, захотели буржуи, что бы в программе установки была автоматическая проверка загружаемости устанавливаемых ею dll.
Re[14]: Ошибка загрузки DLL -529697949
От: MasterZiv СССР  
Дата: 13.07.12 08:49
Оценка:
On 07/13/2012 12:23 PM, cupuyc. wrote:

>

> HMODULE hLib;
> hLib = LoadLibrary(object.fileNameFull);
> if (hLib=NULL)
> AfxMessageBox(object.fileNameFull +" — Не загружена!");
> else
> FreeLibrary(hLib);

А зачем вообще загружать её, если тут же она выгружается ?


> Пробовал не вызывать FreeLibrary() тогда программа падает при выходе из нее.


При выходе из кого ? выражайся яснее.
Posted via RSDN NNTP Server 2.1 beta
Re[12]: Ошибка загрузки DLL -529697949
От: MasterZiv СССР  
Дата: 13.07.12 08:51
Оценка:
> Да вот, захотели буржуи, что бы в программе установки была автоматическая
> проверка загружаемости устанавливаемых ею dll.

Идиотизм. Они могут не загружаться в утановщике но загружаться в программе,
и наоборот. Манифесты могут быть указаны (они действуют на одно приложение)
и текущий каталог и содержимое PATH могут быть разными.
Posted via RSDN NNTP Server 2.1 beta
Re[15]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 13.07.12 10:11
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>On 07/13/2012 12:23 PM, cupuyc. wrote:


>>

>> HMODULE hLib;
>> hLib = LoadLibrary(object.fileNameFull);
>> if (hLib=NULL)
>> AfxMessageBox(object.fileNameFull +" — Не загружена!");
>> else
>> FreeLibrary(hLib);

>> Пробовал не вызывать FreeLibrary() тогда программа падает при выходе из нее.



MZ>А зачем вообще загружать её, если тут же она выгружается ?

Необходимо проверить загружаемость, т.е. подгрузить длл в память удостоверится что LoadLibrary отработает нормально без ошибок и выгрузить эту же длл из памяти за ненадобностью.

MZ>При выходе из кого ? выражайся яснее.

При выходе из программы проверки, в самом конце когда нажимаешь на крестик.

>>Идиотизм.


Ну как бы это не идиотизм а перестраховка на стадии установки. просто система работает в банковской сфере.

>>Они могут не загружаться в утановщике но загружаться в программе,

>>и наоборот. Манифесты могут быть указаны (они действуют на одно приложение)
>>и текущий каталог и содержимое PATH могут быть разными.

в том то и дело что они загружаются в проекте, я пытаюсь то же самое сделать и для установщика. Установка выполняется в каталоге проекта, т.е. пути все совпадают.
Re[16]: Ошибка загрузки DLL -529697949
От: breee breee  
Дата: 13.07.12 10:22
Оценка:
Здравствуйте, cupuyc., Вы писали:

>>>Идиотизм.


C>Ну как бы это не идиотизм а перестраховка на стадии установки. просто система работает в банковской сфере.


Ну, ты же сам видишь, что если они подгружаются в одном случае, не гарантирует, что они будут подгружаться в другом.
Может, по завершении установки производить первый запуск программы (например, с определенным параметром -selftest) и пусть она тестирует все ли в порядке.
Re[16]: Ошибка загрузки DLL -529697949
От: acDev Россия  
Дата: 13.07.12 10:52
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>Необходимо проверить загружаемость, т.е. подгрузить длл в память удостоверится что LoadLibrary отработает нормально без ошибок и выгрузить эту же длл из памяти за ненадобностью.


Может просто проверять PE-файл на корректность? Т.е. сделать проверку, которая бы была аналогом ручной подгрузки DLL в память процесса.

И объясните заказчику что в этом случае достаточно обычной проверки формата файла.
Re[16]: Ошибка загрузки DLL -529697949
От: acDev Россия  
Дата: 13.07.12 12:01
Оценка:
А ещё проще так:
LoadLibraryEx(lpFileName, hFile, LOAD_LIBRARY_AS_IMAGE)
Re[17]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 13.07.12 13:22
Оценка:
Здравствуйте, acDev, Вы писали:

D>А ещё проще так:


D>LoadLibraryEx(lpFileName, hFile, LOAD_LIBRARY_AS_IMAGE)

а что значит флаг LOAD_LIBRARY_AS_IMAGE ?

>>Может просто проверять PE-файл на корректность?

даже не знаю, т.к. мне нужно проверять полную загрузку с проверкой всех зависимостей и т.д.

>>Может, по завершении установки производить первый запуск программы (например, с определенным параметром -selftest) и пусть она тестирует все ли в порядке.

в принципе это возможно, но оооочень уж геморно.
Re[17]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 13.07.12 13:31
Оценка:
Здравствуйте, acDev, Вы писали:

D>А ещё проще так:

D>LoadLibraryEx(lpFileName, hFile, LOAD_LIBRARY_AS_IMAGE)

ругается: error C2065: 'LOAD_LIBRARY_AS_IMAGE' : undeclared identifier

вот доступные из WINBASE.H, как то не густо:
#define DONT_RESOLVE_DLL_REFERENCES 0x00000001
#define LOAD_LIBRARY_AS_DATAFILE 0x00000002
#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
Re[18]: Ошибка загрузки DLL -529697949
От: acDev Россия  
Дата: 13.07.12 13:44
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>ругается: error C2065: 'LOAD_LIBRARY_AS_IMAGE' : undeclared identifier


Попробуйте DONT_RESOLVE_DLL_REFERENCES
Re[19]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 13.07.12 13:59
Оценка:
Здравствуйте, acDev, Вы писали:

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


C>>ругается: error C2065: 'LOAD_LIBRARY_AS_IMAGE' : undeclared identifier


D>Попробуйте DONT_RESOLVE_DLL_REFERENCES


этот вариант мне не подходит. мне как раз таки нужно что бы он проверял зависимости.
Re[20]: Ошибка загрузки DLL -529697949
От: acDev Россия  
Дата: 13.07.12 15:38
Оценка:
Здравствуйте, cupuyc., Вы писали:

C>этот вариант мне не подходит. мне как раз таки нужно что бы он проверял зависимости.


Ну прочитай сам таблицу импорта и загрузи все "зависимости" через LoadLibraryEx.
Re[21]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 17.07.12 05:39
Оценка:
Здравствуйте, acDev, Вы писали:

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


C>>этот вариант мне не подходит. мне как раз таки нужно что бы он проверял зависимости.


D>Ну прочитай сам таблицу импорта и загрузи все "зависимости" через LoadLibraryEx.

а почему через LoadLibraryEx ?
Re[22]: Ошибка загрузки DLL -529697949
От: cupuyc.  
Дата: 17.07.12 05:42
Оценка:
может кто дать толковуюю ссылку на статейку, как поэтапно загружается dll в память\процесс\поток ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.