[Delphi] LoadLibrary(...)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Kandi, 15 May 2012.

  1. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Всем привет, почему не загружаются библиотеки? Собственные dll-ки загружаются нормально. Собственно имею RadStudio 2010, Windows 7, Права пользователя. Пытаюсь загрузить в программе dll-ки Firefox ни загружается ни одной, хотя в папке они присутствуют, пытался и в свою перекинуть с проектом, запускал Rad от имени администратора передавал в LoadLibrary путь через PChar и PWideChar, пытался загрузить в ВКЛ. и ВЫКЛ. Firefox-ом. Даже не знаю как еще попробовать решить данную проблему, может быть они уже подгружены, как в Win7 посмотреть какие dll находятся в работе? Может быть кто-то сталкивался с данной проблемой?
     
  2. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    1)проверяй что возвращают функции.
    2)посмотреть подгрузку можно anvir-ом
     
  3. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Сама LoadLibrary возвращает 0
    GetLastError -> 126 - модуль не найден.
    Что за ... бред?!
     
  4. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    попробуй так примерно, только dll соответственно свою поставь:
    Code:
    SetCurrentDirectory(ffPath);
    FHandle:= LoadLibrary(PChar(ffPath + 'nss3.dll'));
    
    предполагаю, что dll, которую ты загружаешь, импортирует какие-то функции из других либ, а текущая директория у тебя по умолчанию та, где запущен твой exe, соответственно LoadLibrary не находит их там и возвращает 0
     
    #4 alexey-m, 15 May 2012
    Last edited: 15 May 2012
  5. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Да ты прав, библиотека грузит другие просто загружаю plc4.dll, а ошибка возвращает, что отсутствует библиотека nspr4.dll. Не додумался почему-то изначально. Спасибо за помощь)