| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Ошибка при загрузке DLL |
| Автор: lv151 4.6.2009, 16:11 |
| HINSTANCE hLib = LoadLibrary("my.dll"); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL); MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); - Операция успешно завершена, но hLib = 0; |
| Автор: GremlinProg 4.6.2009, 16:14 |
| lv151, покажи DLLMain этой библиотеки |
| Автор: lv151 4.6.2009, 16:15 |
что это? читаю мсдн |
| Автор: GremlinProg 4.6.2009, 16:18 | ||
главная функция
|
| Автор: lv151 4.6.2009, 16:29 |
| Как отлаживать DllMain? |
| Автор: GremlinProg 4.6.2009, 16:54 |
открываешь свойства DLL-проекта, заходишь на вкладку Debugging и заполняешь пункт Сommand здесь нужно указать любую программу, которая загружает твою DLL ставишь брейкпойнт в DllMain и отлаживаешь |
| Автор: lv151 4.6.2009, 16:57 |
| Так и делал, но у меня никогда не заходит в DllMain. |
| Автор: GremlinProg 4.6.2009, 17:04 | ||
| значит длл не загружалась, может в пути напутал чего пробуй загружать длл статически:
|
| Автор: lv151 4.6.2009, 17:06 |
| FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &lpMsgBuf, 0, NULL); MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); - Выдаёт - "Операция успешно завершена" |
| Автор: GremlinProg 4.6.2009, 17:09 |
| да мы уже поняли )) Добавлено через 1 минуту и 9 секунд я имел ввиду при отладке Добавлено через 2 минуты и 18 секунд говорю ж показывай DllMain, чего гадать-то |
| Автор: lv151 4.6.2009, 17:18 | ||
|
| Автор: GremlinProg 4.6.2009, 17:22 |
| ну, MFC в другом разделе |
| Автор: lv151 4.6.2009, 17:24 | ||
| В смысле задавать вопрос в другой раздел форума? Добавлено @ 17:29 В трэйсе при LoadLibrary наблюдается: First-chance exception in My1.exe (NTDLL.DLL): 0xC0000139: (no name). Я ошибся, не в том месте вызывал FormatMessage. Ошибка - "Не найден указанный модуль".
|
| Автор: GremlinProg 4.6.2009, 18:00 |
| ну вот, а я уже переместил топик сложно сказать, тут есть некоторые нюансы совместимости при загрузке образов в Vista/W7: http://www.wasm.ru/forum/viewtopic.php?id=32892 такое возможно, пожалуй, только если длл была скомпилирована, к примеру в XP, а загружается в висте по крайней мере, на это может указывать ошибка в NTDLL |
| Автор: lv151 4.6.2009, 19:20 |
| нет, усё в хр. уже и явно путь прописал - та же ерунда :(. |
| Автор: bugmenot 5.6.2009, 01:04 |
| Выложи exe и dll, если они не очень большие |
| Автор: Earnest 5.6.2009, 06:07 |
| Модуль может быть другой - используемый этой DLL. Нужно проверить зависимости. Но сначала 100% убедись, что имя \ путь правильно написал, до буквы... |
| Автор: lv151 5.6.2009, 08:54 | ||
т.е.?
Извини, не могу, рабочая(не имею права). Пересобрал все подключённые lib-ки, то же самое. А не может ли быть дело в exe-нике? |
| Автор: bugmenot 5.6.2009, 12:09 |
Если не работает банально LoadLibrary, наверняка дело в DLL. PM? |
| Автор: lv151 5.6.2009, 12:11 |
??? |
| Автор: bugmenot 5.6.2009, 12:27 |
| В смысле не хочешь ли ты кинуть мне DLL-ку в PM (личное сообщение)? Обещаю не продавать |
| Автор: lv151 5.6.2009, 13:07 |
| Не имею права. |
| Автор: bugmenot 5.6.2009, 13:13 |
| Ну тогда извини, не знаю, как тебе помочь. |
| Автор: lv151 5.6.2009, 14:04 |
| И на этом спасибо. Я раньше не понимал - что за "Ад DLL", вот он и наступил |
| Автор: Andrey44 5.6.2009, 14:50 |
Что-то не совсем понятно что за "Ад" Ты дллку через LoadLibrary в экзэшнике грузишь или в какой другой длл? |
| Автор: lv151 5.6.2009, 15:08 |
| Да, создал пустой exe проект, в нём HINSTANCE hLib6 = ::AfxLoadLibrary("d:\\mydll.dll"); hLib6 всегда = NULL; |
| Автор: jonie 5.6.2009, 15:18 |
| FileMon в зубы и смотреть чего он пытается найти и не может Добавлено через 46 секунд если не в том проблема (например динамически через ком чего грузится) тогда RegMon поможет |
| Автор: lv151 5.6.2009, 15:47 |
| d:\WINSPOOL.DRV not found Attributes:Error Всё сакссэс но hLib6 всегда = NULL; |
| Автор: lv151 5.6.2009, 17:41 |
| Разобрался, DEPENDS.EXE решает. Дело в одной из подключаемых dll. УРА! Всем спасибо! |
| Автор: Andrey44 9.6.2009, 07:04 |
| lv151, ага, значит твоя длл использовала еще одну длл которой не было рядом. |
| Автор: lv151 9.6.2009, 10:06 |
| Нет, была старая версия вложенной DLL. Dependency Walker всё показал. http://ru.wikipedia.org/wiki/Dependency_Walker |