私の最後のプロジェクトでは、Delphi アプリケーションで多くのフレームを使用していたので、dll を作成して dll 内に配置することにしました (すべて Delphi で作成されました)。
私は多くのWebサイトを調べて、機能するコードを思いつきましたが、その例では、アプリとdllの両方をランタイムパッケージでビルドしてコンパイルする必要があります。つまり、bplも配布する必要があります。ランタイムパッケージでビルドをチェックしないと、エラーが発生します
これは私が見つけたコードです
実行中
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で
Function GetTheFrame( Owner: TComponent; TheParent: TWinControl ): TFrame; stdcall;
Begin
Result := TFrame2.Create( Owner );
Result.Parent := TheParent;
End;
それだけですが、ランタイムパッケージなしでこのコードを動作させたいです