|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.05.2011, 01:36 | #1 |
Регистрация: 24.05.2011
Сообщений: 3
|
LoadLibrary()
Вызываю LoadLibrary() (файл dll4.dll лежит в каталоге экзешника)
Код C++ HMODULE hdll1 = LoadLibraryA("dll4.dll"); по getlasterror получаю ошибку - 14001 = Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему. или так вызываю LPCWSTR pbuft = _T("C:\Documents and Settings\er\Мои документы\Visual Studio 2010\Projects\loaddll4\Debug\dll4.d ll"); HMODULE hdll1 = LoadLibrary("pbuft"); по getlasterror получаю ошибку 126 = Не найден указанный модуль. по моему дело в unicode. я пишу в ms vs ultimate 2010 |
24.05.2011, 02:15 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
если б была проблема с юникодом то получили б ошибку компиляции.
у вас точно dll лежит рядом с exe? не в папке с проектом, а именно с exe(еще советую попробовать для проверки положить в system32) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.05.2011, 02:21 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> getlasterror получаю ошибку - 14001
а зачем проверять GetLastError()? мало ли какой там мусор остался разве только если hdll1 == NULL, тогда да (тогда может попробовать просто LoadLibrary(), без A). > HMODULE hdll1 = LoadLibrary("pbuft"); > по моему дело в unicode а по-моему кавычки убрать не мешало бы )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.05.2011, 07:44 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Другое дело что нужно счетчик ошибки обнулить через SetLastError(0); перед вызовом функции
I'm learning to live...
|
|
24.05.2011, 12:41 | #5 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
товарищи виндоюзеры, никого не смутили одинарные обратные слеши в пути к либе? ну и про кавычки сказано было
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
24.05.2011, 12:44 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Ну ты это здря. Проверять нужно.
нужно, если мы поняли, что что-то пошло не так. А если всё ОК, зачем проверять? Сталкивался с тем, что GetLastError() не всегда сбрасывается в 0 после успешного завершения последней операции. > ошибки обнулить через SetLastError(0); перед вызовом функции имхо, лишнее телодвижение. Эффективнее так: 1) делаем что-то 2) результат ОК? если да, двигаемся дальше, если нет, смотрим на GetLastError() Кстати, эта ошибка (14001) ещё может быть, если dll4.dll залинкована на другую dll, которую не удалось найти.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LoadLibrary | lennon | Помощь студентам | 4 | 15.09.2009 00:02 |
Есть ли у LoadLibrary и FreeLibrary побочный эффект? | BaronTreep | Win Api | 5 | 23.08.2009 20:52 |
преобразование переменной AnsiString в PAnsiChar для использования в процедуре loadlibrary | The Best | Общие вопросы Delphi | 2 | 12.07.2009 20:42 |