Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: 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 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.113 c
4-1131625646
max999
2005-11-10 15:27
2006.01.22
Вопрос по размерам окна


2-1136364746
Acul
2006-01-04 11:52
2006.01.22
чтение файла


11-1117558230
Zoom
2005-05-31 20:50
2006.01.22
MHFindReplaceDialog


1-1135001045
ССТ
2005-12-19 17:04
2006.01.22
Чтение содержимого окна-таблицы


14-1135511079
Ламерюга
2005-12-25 14:44
2006.01.22
Как узнать значение переменной хранящейся в другой форме!