Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.884 Beiträge
 
Delphi 12 Athens
 
#2

Re: Dcc70.dll mit Zugriffsverletzungen beim dpk Installieren

  Alt 3. Jul 2009, 16:37
Eine Ursache scheint zu sein
das folgende Konstruktion
KEINE Exception wirft.

Sprich im Initialization teil scheint der ReRaise nicht zu funktionieren
wenn ich das Package installiere.

Es kommt die dämliche Fehler Meldung mit der Zugriffsverletzung

Es hätte aber Eine Meldung über eine nicht existierende Datei kommen müssen....
Und in der Anwendung klappt das auch.


So geht es (also mit der richtigen Fehlermeldung)
Delphi-Quellcode:

initialization

// try
    Libs := TRunSmartLibs.Create; // Bibliotheken Verwaltungsobjekt Erzeugen
    InitWithDefaults := true; // Standardmässig Default Einstellungen verwenden
    InitStandards; //Dateizugriff auf INIFile welche die Einstellungen lädt
    If InitWithDefaults then
      LoadDBLib(DBLibDLLName(DefaultDB));//Laden der DLL//BPL Funktionen in die Procedure variablen
// except
// on e:Exception do
// raise exception.create(e.Message+#13#10'In Unit Libimport Initialization');
// end;

Finalization

// try
    // UnloadDBLib;// Alle Bilbliotheken wieder entladen.
    if assigned(libs) then
      Libs.free;// Bibliotheksverwaltungsobjekt freigeben.
// except
// on e:Exception do
// raise exception.create(e.Message+#13#10'In Unit Libimport Finalization');
// end;

end.
So nicht

Delphi-Quellcode:
initialization

  try
    Libs := TRunSmartLibs.Create; // Bibliotheken Verwaltungsobjekt Erzeugen
    InitWithDefaults := true; // Standardmässig Default Einstellungen verwenden
    InitStandards; //Dateizugriff auf INIFile welche die Einstellungen lädt
    If InitWithDefaults then
      LoadDBLib(DBLibDLLName(DefaultDB));//Laden der DLL//BPL Funktionen in die Procedure variablen
  except
    on e:Exception do
      raise exception.create(e.Message+#13#10'In Unit Libimport Initialization');
  end;

Finalization

  try
    // UnloadDBLib;// Alle Bilbliotheken wieder entladen.
    if assigned(libs) then
      Libs.free;// Bibliotheksverwaltungsobjekt freigeben.
  except
    on e:Exception do
      raise exception.create(e.Message+#13#10'In Unit Libimport Finalization');
  end;

end.
Vermutlich also erstmal das Problem behoben...sobald ich die vermisste Datei in den Projects Ordner kopiere...
Falls irgendwem dieser Monolog weiterhilft.

Wie habe ich das herrausbekommen?

Ein Dummy Package mit nem TEDIT nachfahren Genommen und schritt weise Units die ich in dem original package verwende
hinzu genommen und in der Dummykomponente benutzt...
bis sich der Fehler einstellte...
Danach Abschnittsweise in der Unit auskommentiert....
Dabei bin ich auf
den Code
raise Execption(E.message+'BLA') gestoßen der sich scheinbar kompilieren lässt...
dachte das muss doch heißen
raise Execption.create(E.message+'BLA') da habe ich dann versucht mal ohne Try Excepts zu installieren....
tja..
so ein Scheiß.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat