Недавно я начал проект с таким большим количеством форм, фреймов и дополнительных элементов управления, поэтому мое приложение разрасталось, и я использую 3 бывших в своих проектах (все они сделаны в Delphi 2009), и эти приложения также используют одни и те же фреймы и формы. поэтому я использовал библиотеки DLL, чтобы поделиться этими формами.
но возникла проблема с другой ошибкой Tfont. поэтому я заглянул в Интернет и пришел с ответом: «Выбрать | Создавайте пакеты среды выполнения. тогда все стало работать отлично
но когда я проверил Windows Taskmanager | memusage это ~ 21 500 кб (21,5 мб). (но использование памяти составляет всего 2000 кб без сборки с пакетами времени выполнения, также включая кадры dimg вручную, добавляя их во все 3 проекта exe), и мой компилятор также работает медленно с включением сборки с пакеты времени выполнения
и теперь мне нужно распространить проект с 3 исполняемыми пакетами exes + delphi bpl + dll
но я хочу знать, как увеличилась память, и я хочу только распределить 3 exes + dll (как распределяются обычные delphi exes) Я даже использовал менеджеры памяти, но не работал
как преодолеть эту проблему
это код, который я использовал
в exe
procedure TForm1.Button1Click(Sender: TObject);
type
TGetTheFrame =Function( Owner: TComponent; TheParent: TWinControl ): TFrame; stdcall ;
var
GetTheFrame : TGetTheFrame;
begin
try
GetTheFrame(application,TabSheet1).Free ;
except
end;
frm := GetTheFrame(application,TabSheet1) ;
dllHandle := LoadLibrary('project1.dll') ;
if dllHandle <> 0 then
begin
GetTheFrame := GetProcAddress(dllHandle, 'GetTheFrame') ;
frm := GetTheFrame(application,TabSheet1) //call the function
{ ShowMessage('error function not found') ;
FreeLibrary(dllHandle) ; }
end
else
begin
ShowMessage('xxxx.dll not found / not loaded') ;
end
в dll
uses
Windows,
Messages,
SysUtils,
Classes,
Forms,StdCtrls, Controls,
Unit2 in 'Unit2.pas' {Frame2: TFrame};
{$R *.res}
Function GetTheFrame( Owner: TComponent; TheParent: TWinControl ): TFrame; stdcall;
Begin
Result := TFrame2.Create( Owner );
Result.Parent := TheParent;
End;
exports gettheframe;
begin
end.
и, наконец, как сделать все это без сборки с пакетами времени выполнения
больше, чем проблемы с памятью, просто скажите мне, как создать такое приложение без пакетов buildwithruntime