Вниз
Скачать: CL | DM;

Маленькой приложение с 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.033 c
14-1135778984
Kerk
2005-12-28 17:09
2006.01.22
Google Zeitgeist 2005


2-1136315499
JazY
2006-01-03 22:11
2006.01.22
4 простых вопроса по DBgrid


1-1134722112
scorpio_md
2005-12-16 11:35
2006.01.22
Как закрыть EXCEL без запроса на сохранение


3-1132823454
thvfrjd
2005-11-24 12:10
2006.01.22
Подключение к БД


14-1135976124
Kerk
2005-12-30 23:55
2006.01.22
Почитал ветки




   Наверх