Главная страница
    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.03 c
1-41266
Serg™
2003-10-31 16:23
2003.11.13
Help


1-41387
difkukan
2003-10-30 11:56
2003.11.13
Вопрос по Treeview


7-42206
DVM
2003-09-04 18:11
2003.11.13
Где в Windows хранится обозначение года (г.) на текущем языке.


14-42125
Bel
2003-10-21 20:12
2003.11.13
Вопрос к украинцам.


14-41911
GOOD
2003-10-21 00:47
2003.11.13
Нужна помощь!





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