Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.082 c
14-42006
Ormada
2003-10-17 12:20
2003.11.13
Редактор для Delphi


1-41157
kXmok
2003-11-02 19:49
2003.11.13
Гражжне! как FileNam-у передать значение переменной?


14-42015
Кен
2003-10-15 05:57
2003.11.13
Посоветуйте, какой нибудь хороший форум по Спутниковому ТВ ?


3-40856
Вованчик
2003-10-21 15:03
2003.11.13
Select


6-41789
D.Rider
2003-09-13 23:16
2003.11.13
Как узнать включен, ли удалнный компьютер, не пингуя