Pour mon dernier projet, j'utilisais beaucoup de cadres dans mon application delphi, donc je dicided pour créer dll et les mettre à l'intérieur des dll (tous créés à Delphi)delphi exe et dll sans construire avec des packages d'exécution
j'ai passé à travers de nombreux sites Web et est venu avec le code qui fonctionne, mais pour cet exemple, je dois compiler à la fois des applications et des DLL avec construire avec des paquets d'exécution ce qui signifie que je dois distribuer les bpls aussi. et si Ne vérifiez construire avec l'erreur de packages d'exécution vient
c'est le code que j'ai trouvé
dans 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
dans dll
Function GetTheFrame(Owner: TComponent; TheParent: TWinControl): TFrame; stdcall;
Begin
Result := TFrame2.Create(Owner);
Result.Parent := TheParent;
End;
c'est tout, mais je veux ce code fonctionner sans packages d'exécution
mais je suis sûr que le code est bon parce qu'il a fonctionné avec les paquets runtimw = e – VibeeshanRC
Quel est l'objectif de ce premier appel 'GetTheFrame'? Si cela devait faire autre chose que de perdre votre mémoire au hasard, vous l'utilisez mal. Le compilateur devrait vous avertir que vous utilisez une variable non initialisée. –
Voir ma réponse dans votre question précédente: http://stackoverflow.com/questions/3985256/how-to-use-delphi-dlls-without-enabling-build-with-runtime-packages Je pense que cette question est un doublon. –