Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   LoadPackage funktioniert in 10.4.2 nicht mehr (https://www.delphipraxis.net/207157-loadpackage-funktioniert-10-4-2-nicht-mehr.html)

Tom-Tom 1. Mär 2021 07:56

LoadPackage funktioniert in 10.4.2 nicht mehr
 
Hallo,

ich habe ein Problem mit dem Befehl "LoadPackage" und hoffe hier auf einen Tipp von Euch. (vorab schon mal danke fürs Lesen / grübeln)

In meiner Software lade ich (zumindest bis zur Version 10.4.1) zwei BPL Dateien dynamisch ein. Diese beinhalten jeweils einen TFrame,
der kundenspezifisch der Software zugewiesen wird. Klappt sein Jahren absolut problemlos. der Befehl:

Code:
      try
        AdressenpackageModule := LoadPackage(Programmpfad+Adressenpackage);
        if AdressenpackageModule <> 0
          then
            begin
              AClass := GetClass('Tfrm_Adressen_Individual');
              if AClass = nil
                then
                  Begin
                    HINWEIS('"Tfrm_Adressen_Individual" ist nicht in "+Adressenpackage+" enthalten.');
                  End;
            end;
      except on E: Exception do
        Hinweis(e.message,2);
      end;

Beim Start erscheint dann folgende Fehlermeldung: (beim "Loadpackage")

Package L:\....\Adressenframes.BPL kann nicht geladen werden.
Das angegebene Modul wurde nicht gefunden


Aber:

1. Die Datei ist definitiv da.
2. Das Package selbst habe ich natürlich auch unter 10.4.2 neu compiliert.
3. Das Package enthält ein einziges "requires", [eine Oracle DB "Komponente" ] das Package existiert auch als bpl Datei.
4. Alle "requires" dieser Oracle Komponente sind ebenfalls vorhanden.
und das Beste:
5. Auf dem Delphi Rechner funktioniert es.

Also sagt sich doch das geschulte Auge: Da fehlt eine Datei.

Frage an Euch Experten: Eine Idee, welche fehlt ? (Wir suchen uns hier schon einen Wolf mit dem Process Monitor)

Vielen Dank für Eure Mühe !

Tom-Tom

Daniel 1. Mär 2021 08:15

AW: LoadPackage funktioniert in 10.4.2 nicht mehr
 
Auch wenn die "kleinen Releases" (10.4 > 10.4.1 > 10.4.2 ...) binärkompatibel sein sollten, gab es rund um Version 10.4.1 eine Panne, die Euch ggf. beißen könnte:
https://blogs.embarcadero.com/ide-pl...studio-10-4-1/
Mutmaßlich betrifft es zwar nur Formulare für Integration in die Delphi-IDE, aber es wäre ggf. einen Versuch wert, alle beteiligten Programmteile mit 10.4.2 neu zu übersetzen und zu prüfen, ob der Fehler dann immer noch auftritt. Gerade, wenn es auf dem Entwicklungs-Rechner klappt, würde ich in dieser Richtung forschen.

Tom-Tom 1. Mär 2021 08:20

AW: LoadPackage funktioniert in 10.4.2 nicht mehr
 
Hallo Daniel,

danke für den Hinweis. Wir haben gerade nochmal den Process-Monitor mit anderen Filtern durchlaufen lassen und tatsächlich noch eine fehlende BPL Datei gefunden. (bzw nicht gefunden, logisch)
Der 'Bösewicht war die dclstd270.bpl". Merkwürdig, dass das Fehlen der Datei nicht angemeckert wurde.

Jetzt funktioniert es.

Vielen Dank für Deine Mühe.

Tom-Tom

himitsu 1. Mär 2021 09:38

AW: LoadPackage funktioniert in 10.4.2 nicht mehr
 
Und sicherheitshalber statt direkt einem Programmpfad+Adressenpackage ein
Delphi-Quellcode:
TPath.Combine(Programmpfad, Adressenpackage)
zu verwenden, kann auch nie schaden.

PS: Diese Meldung beim LoadPackage/LoadLibrary muß auch nie heißen dass diese BPL/DLL nicht gefunden wurde.
Es kann auch bedeuten, dass eine Abhängigkeit (Require / DLL-Import-Table) fehlt, bzw. eine Abhängigkeit in einer der Abhängigkeiten usw.

dummzeuch 1. Mär 2021 10:22

AW: LoadPackage funktioniert in 10.4.2 nicht mehr
 
Zitat:

Zitat von Tom-Tom (Beitrag 1484121)
Wir haben gerade nochmal den Process-Monitor mit anderen Filtern durchlaufen lassen und tatsächlich noch eine fehlende BPL Datei gefunden. (bzw nicht gefunden, logisch)
Der 'Bösewicht war die dclstd270.bpl". Merkwürdig, dass das Fehlen der Datei nicht angemeckert wurde.

Das ist aber ein Designtime-Package (Dcl*.bpl) und sollte eigentlich nicht von Runtime-Packages verwendet werden.

Und wenn ich mich recht erinnere, erlaubt die Lizenz auch eine Weitergabe dieser Datei nicht.

himitsu 1. Mär 2021 12:54

AW: LoadPackage funktioniert in 10.4.2 nicht mehr
 
Zitat:

Zitat von dummzeuch (Beitrag 1484135)
Und wenn ich mich recht erinnere, erlaubt die Lizenz auch eine Weitergabe dieser Datei nicht.


C:\Program Files (x86)\Embarcadero\Studio\21.0\bin
Die Dateien, welche die IDE verwendet

C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\win32
Und jene, welche zum Weitergeben sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz