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

Вниз

LoadLibrary не находит библиотеку!   Найти похожие ветки 

 
Plt   (2003-11-03 13:51) [0]

...
LibName := "Temp.dll"
LoadLibrary(LibName);
...

Длл-на в упор не находится. Пробовал кидать в текущую директорию, не помогло.


 
oomneeq   (2003-11-03 13:55) [1]

Возможно она и находится, но не грузится.

сделай

Win32Check(LoadLibrary(LibName));

сама скажет почему.


 
Plt   (2003-11-03 14:00) [2]

GetLastError возвращает 126 "The specified module could not be found."


 
panov   (2003-11-03 14:06) [3]

Полный код с определением переменных приводи.


 
Anatoly Podgoretsky   (2003-11-03 14:09) [4]

Находится не там где ищется


 
Plt   (2003-11-03 14:12) [5]

function CallDOAFrm( const LibName, ProcName : PChar; List : TStrings = nil;
const Param : PChar = nil): HRESULT;
var
l : THandle;
i : Integer;
s,s1,md5_str,vrs : string;
Lst : TStrings;
begin
if List = nil then
Lst := LoadedLibs
else
Lst := List;
i := Lst.IndexOfName(LibName);
if i = -1 then
l := LoadLibrary(LibName)
// вот здесь GetLastError возвращает 126
else
l := THandle(Lst.Objects[i]);

Result := -1;
if l <> 0 then begin
p := GetProcAddress(l,ProcName);
if @p <> nil then begin
SetLength(s,255);
GetModuleFileName(l,@s[1],255);
s1 := PChar(@s[1]);
V.FileName := s1;
if i = -1 then begin
try
md5_str:=GetMD5Digest(s1);
vrs:=LongVersionToString(V.FileLongVersion);
result:=CheckVersion(LibName,md5_str,vrs,Session);
s1 := LibName + "="+ s1 + " ("+md5_str+"), "+ vrs;
except
Application.ShowException(Exception.CreateFmt("? ?????????? %s ??? ??????? ??????.",[LibName]));
end;
Lst.AddObject(s1,TObject(l));
end;
p(Session, Param);
end
else begin
if i = -1 then FreeLibrary(l);
Application.ShowException(
Exception.CreateFmt("??????? %s ? ?????????? %s ?? ???????.",[ProcName,LibName]));
end;
end
else
Application.ShowException(Exception.CreateFmt("?????????? %s ?? ???????.",[LibName]));
end {CallDOAFrm};


 
Plt   (2003-11-03 14:20) [6]

Находится там это 100%, старая версия длл-ны находится, а новая нет. В новой добавилось пару функций и фсё!


 
panov   (2003-11-03 15:03) [7]

Попробуй расширение убрать в имени библиотеки.
К сожалению, D5 нет, и не на чем попробовать.


 
Rouse_   (2003-11-03 15:08) [8]

А ты проверял что находится в LibName на момент вызова l := LoadLibrary(LibName)?

Желаю успехов


 
Skier   (2003-11-03 15:08) [9]

>Plt (03.11.03 13:51)
LibName := "TEMP.DLL";
LoadLibrary(LibName);


 
Внук   (2003-11-03 15:13) [10]

Угу, регистр букв имеет значение


 
panov   (2003-11-03 15:19) [11]

>Внук © (03.11.03 15:13) [10]
Угу, регистр букв имеет значение

У меня на компе не заметил влияния регистра букв в имени.


 
Внук   (2003-11-03 15:23) [12]

>>panov © (03.11.03 15:19) [11]
А я заметил на BPL, думаю, что и для DLL имеет место. Хотя, возможно, это не так.


 
Юрий Зотов   (2003-11-03 15:47) [13]

Под NT у меня такое было. Помогло указание в LoadLibrary полного имени DLL, вместе с путем и расширением. Регистр роли не сыграл.


 
Plt   (2003-11-03 15:54) [14]

Заметил что в новой длл-не выгружалась Fr5.bpl. Когда вернул на место, длл-на билдится вместе с Fr5.bpl, работает все нормально.
Fr5.bpl находилась там где и длл-на.


 
Внук   (2003-11-03 16:01) [15]

Мммм... А может, перепутал я? Может, это GetProcAddress чувствителен к регистру? Память девичья...


 
Plt   (2003-11-03 16:49) [16]

Еще одну фигню обнаружил. Эта проблема возникает тока под NT4, на машинах с 2000 и ХР фсё работает.


 
Юрий Федоров   (2003-11-03 16:59) [17]

GetProcAddress точно чувствителен


 
Игорь Шевченко   (2003-11-03 23:04) [18]


> Находится там это 100%, старая версия длл-ны находится,
> а новая нет. В новой добавилось пару функций и фсё!


Значит, новая DLL из-за пары добавленных функций не может загрузиться. И ошибка может быть именно в этих функциях, например, они вызывают какую-любо функцию из тех, которых нету в NT4, а есть в Win2k или в WinXP...



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

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

Наверх





Память: 0.48 MB
Время: 0.034 c
1-41609
frogl
2003-10-24 16:12
2003.11.13
Копирование в TWebBrowser


6-41816
alpine
2003-09-09 13:53
2003.11.13
Как авторизировать NMHTTP на прокси ?


1-41694
Тохус
2003-11-04 00:32
2003.11.13
GetSystemTime


1-41400
nazar
2003-10-30 00:26
2003.11.13
Подкажите installer который б мог инсталлировать IDAPI 2.5


1-41539
Bocman
2003-10-27 23:30
2003.11.13
TChart и числа до1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский