Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Знатоки dll и dpl, помогите, плз. [D3, Win95/98]


Praco ©   (2002-08-21 11:41:00) 

Не могу загрузить run-time пакет(dpl).
Вызываю LoadPackage.
LoadPackage вызывает LoadLibrary
LoadLibrary возвращает 0, при этом GetLastError возвращает 31, что соответствует "Присоединенное к системе устройство не работает".
dpl существует, компилируется нормально, лежит в одной папке с вызывающим приложением, кроме того, папка прописана в path.
Другие dpl"и загружаются нормально.
Параметры всех пакетов одинаковы.
В чем может быть дело?


Praco   (2002-08-21 13:35:00) [1]

Игорь Шевченко © (21.08.02 12:37)
Ставил, проверял. Перемещал dpl в windows\system. Файл существует и лежит где только возмоможно. Остальные dpl лежат рядом с ним и нормально грузятся.


Игорь Шевченко   (2002-08-21 12:37:00) [2]

А if FileExists(ExtractFileName(Edit1.Text)) конечно, не судьба поставить ?
Кстати, ошибка может быть из-за того, что файла нет, а в переменной PATH указан кривой путь, к примеру.


Praco   (2002-08-21 12:20:00) [3]

Код загрузки пакета
dpl := LoadPackage(ExtractFileName(Edit1.Text));

{SYSUTILS}
function LoadPackage(const Name: string): HMODULE;
begin
//ВОТ ЭТА LoadLibrary ВЕРНЕТ 0
Result := LoadLibrary(PChar(Name));
if (Result > -1) and (Result <= 32) then
raise EPackageError.CreateFmt(sErrorLoadingPackage,
//ВОТ ЭТОТ GetLastError ВЕРНЕТ 31
[Name, SysErrorMessage(GetLastError)]);
try
InitializePackage(Result);
except
FreeLibrary(Result);
raise;
end;
end;


Игорь Шевченко   (2002-08-21 12:16:00) [4]

Пардон, не прочитал...Только код загрузки, плз.


Игорь Шевченко   (2002-08-21 12:13:00) [5]

Код загрузки пакета, ошибку, которую возвращает GetLastError - телепатов здесь нет


Praco   (2002-08-21 12:11:00) [6]

Skier © (21.08.02 12:01)
Проверял. Третий день парюсь.


Skier   (2002-08-21 12:01:00) [7]

>Praco
А ты прежде "проверь"
имя пакете через FileExists(...)
Что он тебе вернёт...


Praco   (2002-08-21 11:59:00) [8]

До выполнения кода из пакета дело не доходит.
LoadLibrary возвращает 0.


Praco   (2002-08-21 11:58:00) [9]

Какой код?

package RepFacult;

{$R *.RES}
{$ALIGN ON}
{$ASSERTIONS OFF}
{$BOOLEVAL OFF}
{$DEBUGINFO OFF}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS OFF}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO OFF}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $00400000}
{$RUNONLY}
{$IMPLICITBUILD OFF}

requires
vcl30,
VCLX30,
VCLDB30,
VCLSMP30,
QRPT30,
RXCTL,
RXDB;

contains
KpSelInsurants,
LnQRepFacult,
LnQRepFacult2,
hoObjInfoRep,
hoMathApi;

end.


Игорь Шевченко   (2002-08-21 11:51:00) [10]

В коде :-)
Код бы неплохо привести


Наверх

Титульная страница Поиск, карта сайта Написать письмо