Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизМаленькой приложение с Build with runtime packages Найти похожие ветки
← →
Bopros (2006-01-06 13:43) [0]написал приложение:
program project1;
begin
while true do begin
end;
end.
я так понимаю оно vcl не использует, поэтому поставил галочку
Build with runtime packages
Приложение стало меньше, но при запуске в windows без делфи выдаёт ошибку:
"Приложению не удалось запуститься, поскольку rtl60.bpl не был найден."
если я пишу приложение на API без использования vcl то галочку Build with runtime packages можно поставить или я не прав?
← →
Reindeer Moss Eater © (2006-01-06 14:11) [1]Можно ставить эту галочку.
← →
Bopros (2006-01-06 14:20) [2]повторюсь - тогда на чистой винде вылазеет сообщение
Приложению не удалось запуститься, поскольку rtl60.bpl не был найден.
зачем ей бпл если я всл не использую?
← →
Sergey_Masloff (2006-01-06 14:39) [3]Ты не можешь в Delphi отказаться от использования System.pas - он неявно включается в любой проект. Ну а у него есть секция инициализации и далее по списку Ж-)
← →
Reindeer Moss Eater © (2006-01-06 14:46) [4]повторюсь - тогда на чистой винде вылазеет сообщение
А как ты хотел?
Приложению нужен пакет rtl60.bpl, а его нет.
← →
Sergey_Masloff (2006-01-06 14:50) [5]Вобщем, много можно говорить давай остановимся на
1) Некоторые rtl-функции используются неявно ЛЮБЫМ приложением delphi даже
begin
end.
2) Если галочка поставлена то эти функции не линкуются в файл программы. Вместо этого программа попытается при запуску подгрузить DLL (в данном частном случае BPL ) с реализацией. Если не удалось то облом
3) Если галочку не стаить все прилинкуется в 1 исполняемый файл и будет работать не требуя пакетов.
← →
Sergey_Masloff (2006-01-06 14:58) [6]Ну и вдогонку. Сделай tdump YourProject.exe >outfile.txt
для файла с рантайм пакетами и без. И сравни выходные файлы. Увидишь интересный фрагментик
Section: Import
ImportLookUpTblRVA:00000000
Time Stamp: 00000000
Forwarder Chain: 00000000 (index of first forwarder reference)
Imports from rtl70.bpl
__fastcall System::initialization()
__fastcall System::Finalization()
__fastcall System::RegisterModule(System::TLibModule *)
System::__linkproc__ __fastcall Halt0()
System::__linkproc__ __fastcall StartExe(System::PackageInfoTable *, System::TLibModule *)
System::__linkproc__ __fastcall HandleFinally()
System::IsConsole
Imports from kernel32.dll
GetModuleHandleA
← →
Sandman29 © (2006-01-06 15:13) [7]есть rtl60.bpl, есть vcl60.bpl. программы без vcl не требуют второго, но все равно требуют первого
← →
Reindeer Moss Eater © (2006-01-06 15:14) [8]так а первый и не является vcl
← →
Bopros (2006-01-06 17:20) [9]спасибо за разъяснения, понял
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c