![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Знатоки 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]В коде :-)
Код бы неплохо привести