AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein BPL-Projekt läßt sich nicht per LoadPackage('packed.bpl'); laden
Thema durchsuchen
Ansicht
Themen-Optionen

BPL-Projekt läßt sich nicht per LoadPackage('packed.bpl'); laden

Ein Thema von paule32.jk · begonnen am 23. Aug 2023 · letzter Beitrag vom 24. Aug 2023
 
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#1

BPL-Projekt läßt sich nicht per LoadPackage('packed.bpl'); laden

  Alt 23. Aug 2023, 13:45
Änderung (Code hinzugefügt (BPL-Projekt:
Code:
unit Interfaces;
interface

type
  PointerByte = ^Byte;

type
  IRF_Package = interface(IInterface)
    ['{19790208-2023-0802-0002-CAFEBABE0002}']
    function DeCompressBuffer(str: String; len: Integer): Boolean;
    function DeCompressAll: Boolean;
  end;

implementation
end.
Code:
unit ResourceFiles;
interface
uses
  Windows, Classes, SysUtils, Dialogs, Interfaces,
  JvComponentBase, JvZlibMultiple,
  ...

type
  TRF_Package = class(TInterfacedObject, IRF_Package)
  public
    function DeCompressBuffer(str: String; len: Integer): Boolean;
    function DeCompressAll: Boolean;

    constructor Create; overload;
    destructor Destroy; override;
  end;

implementation

constructor TRF_Package.Create;
begin
  inherited Create;
end;

destructor TRF_Package.Destroy;
begin
  inherited Destroy;
end;
...
end.
Änderung (Code hinzugefügt (EXE-Projekt:
Code:
  procedure PrepareBitmapPackage;
  var
    MyPackage : IRF_Package;
    MyGUID   : TGUID;
    H        : HMODULE;
  begin
    H := 0;
    try
      try
        H := LoadPackage(PChar(ExtractFilePath(
        Application.ExeName) + 'ResPackage.bpl'));
        if H = 0 then
        begin
          raise Exception.Create(
          #10 + 'Can not load package: ResPackage.bpl' +
          #10 + 'aborted.');
        end;

        MyGUID := StringToGUID(
        '{19790208-2023-0802-0002-CAFEBABE0002}');
        MyPackage := CreateComObject( MyGUID ) as IRF_Package;

        if not Assigned(MyPackage) then
        begin
          raise Exception.Create(
          'can not access Interface: IRF_Package');
        end;

        if not(MyPackage.DeCompressAll) then
        begin
          raise Exception.Create(
          'ResPackage.bpl error.');
        end;
      except
        on E: Exception do
        begin
          ShowMessage('Exception:' +
          #10 + E.CLassName +
          #10 + E.Message );
          Close;
        end;
      end;
    finally
      UnloadPackage(H);
    end;
  end;

Hallo,

nun habe ich erfolgreich ein BPL-Projekt geschrieben.
Der Compiler hat automatisch dependcies (requeires Abschnitt) hinzugefügt und ohne Fehler
oder sonstigen Meldungen compiliert.

Auch das installieren in das IDE System war erfolgreich (Instal packages...).
Ich kann in diesen Dialog weitere Packages sehen, die unterschiedliche Komponenten zur Verfügung stellen.

Zu jeden Eintrag steht in grau der Pfad.
Für meine BPL-Datei habe ich diesen Pfad kopiert, und unter einer Anwendung im Kontext:
"LoadPackage" verwenden wollen.

Der Compiler mekkert auch hier nicht, und erstellt ein .exe Image.

Wenn ich nun das Image starte, kommt dann der Fehler bei diesen Code:
Code:
var
  h: HMODULE;
begin
h := LoadPackage('E:\Pfad\package.bpl');
if h = 0 then ShowError;
end;
der Fehler vom System: "Das angegebene Modul konnte nicht gefunden werden".

Dann habe ich in das Image geschaut und die Einträge: rtl70.bpl, und vcl70.bpl
gefunden.

Unter den Optionen ist das Häckchen (wo man Mit/Ohne Runtime Packages compilieren kann)
ausgegraut (kein Häckchen zu sehen).

Danach habe ich nach diesen zwei Dateien gesucht.
Aber ich konnte die im Installationsverzeichnis von Delphi nicht finden.
Unter C:\windows\system32 habe ich auch nichts gefunden.

Anwendungen lassen sich aber erstellen und ausführen (was recht komisch ist, da ja auch
Programme/Anwendungen rtl70.bpl und vcl70.bpl benötigen.

Von daher: kann mir einer einen Tipp geben, wo ich diese Dateien finden kann ?

Für sachdienliche Hinweise bin ich sehr dankbar.

Gruß, der paule (jaja, er war Bademeister
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet

Geändert von paule32.jk (23. Aug 2023 um 15:19 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz