Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Вниз

LoadLibrary   Найти похожие ветки 

 
А. Владимир   (2004-01-18 13:56) [0]

При попытке выполнить LoadLibrary не на динамической библиотеке возникает ошибка, как ее поймать?
Спасибо.


 
alex_***   (2004-01-18 14:08) [1]

что-то вроде того было SafeLoadLibrary.
или try ... except


 
А. Владимир   (2004-01-18 14:17) [2]

try ... except не ловит...

C SafeLoadLibrary тоже самое..


 
Anatoly Podgoretsky   (2004-01-18 14:18) [3]

LoadLibrary возвращает результат, его надо анализировать а не игнорировать.


 
А. Владимир   (2004-01-18 14:24) [4]

Ошибка возникает сразу же после вызова функции. Я делаю дальшейший анализ возвращаемого результата, но от ошибки избавится не могу.


 
Anatoly Podgoretsky   (2004-01-18 14:26) [5]

Какая ошибка?


 
А. Владимир   (2004-01-18 14:28) [6]

"Неверный образ", причем это происходит только в XP.


 
Anatoly Podgoretsky   (2004-01-18 14:31) [7]

Приводи код, но вполне возможно, что и неверный образ. Особенно приводи обработку ошибок и в каком месте у тебя возникает ошибка, надеюсь ты протрассировал. Вот тогда возможно и помогут.


 
А. Владимир   (2004-01-18 14:39) [8]

Да, конечно протрассировал. Она возникает при вызове LoadLibrary не на dll (например текстовый файл). В 98 такого нет. Собственно код. Можно создать пустой проект и вызвать LoadLibrary на тектовике. Пробовал делать try ... except на эту строчку, но все-равно не ловится :(


...
var
LibHandle : THandle;
...
begin
...
// loading plugin
LibHandle:=LoadLibrary(PChar(AppPath + CryptPluginPath + PluginName));
if LibHandle >= 32 then
begin
@DecryptString := GetProcAddress(LibHandle, "DecryptString");
end;
...


 
Anatoly Podgoretsky   (2004-01-18 14:50) [9]

If the function fails, the return value is NULL. To get extended error information, call GetLastError.


 
SammIk   (2004-01-18 14:54) [10]

Те ты хочешь загрузить текстовыи фаил?
Или ДЛЛ, но с расширением тхт?
В первом случае он будет ругаться.
А во втором, что-то ты сам в коде напартачил
Return Values
If the function succeeds, the return value is a handle to the module.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

И вообше, на врятли хендл будет меньше $40000


 
А. Владимир   (2004-01-18 15:14) [11]

Нет я хочу загрузить библиотеку. Но если вместо нее грузить не библиотеку он ругается (в XP). И всего-то надо отловить эту ошибку. Я могу понять, что она есть, но отловить не могу.


 
Islander   (2004-01-18 15:20) [12]

Владимир вот чего имеет в виду, как я понял:
в момент вызова LoadLibrary(PChar(AppPath + CryptPluginPath + PluginName)); винда ругается и говорит, что can"t load. Т.е. это происходит еще до того как функция LoadLibrary отработает. Так вот, я бы тоже с радостью узнал, как подавить сообщение Windows, о том, что это не та библиотека? А может, есть какая-нибудь функция, типа ISThisWin32Library?


 
DVM   (2004-01-18 15:25) [13]

Короче надо узнать является ли данный файл с произвольным расширением динамической библиотекой или нет. Мне тоже было бы интересно узнать как это сделать. Наверное проанализировав структуру файла можно найти байты, характерные для dll. Какие, документацию смотреть надо по структуре файла.


 
А. Владимир   (2004-01-18 16:09) [14]

Все всем спасобо я разобрался. Если вызвать функцию SafeLoadLibrary и передать ErrorMode = SEM_FAILCRITICALERRORS, то ошибка не возникает, а функция возвращает 0 при неудачной загрузке dll.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
1-93428
_none_
2004-01-16 15:29
2004.01.29
вывод графики через bitblt: мелькание (синхронизация?)


1-93419
Вомбат
2004-01-16 15:56
2004.01.29
Запись / чтение компоненты из ресурса


1-93511
Kinrderrr
2004-01-18 21:42
2004.01.29
Мышь над формой


3-93382
Grotesk
2003-12-30 18:28
2004.01.29
DataSet в качестве Базы Данных


1-93439
Pavor
2004-01-12 14:58
2004.01.29
RichEdit не показывает картинку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский