AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

loadlibrary problem

Ein Thema von Sauerkrautpoet · begonnen am 29. Sep 2006 · letzter Beitrag vom 6. Okt 2006
Antwort Antwort
Seite 1 von 3  1 23      
Sauerkrautpoet

Registriert seit: 18. Jul 2006
Ort: Leipzig
20 Beiträge
 
#1

loadlibrary problem

  Alt 29. Sep 2006, 13:48
ich habe eine anwendung die sich aus einem unterverzeichnis dll-dateien sucht und siese dynamisch lädt.
nun habe ich bei 2 dll´s das problem, dass ich sie nicht laden kann. alle anderen (um die 20 dlls) kann ich einwandfrei laden.
ich bekomme bei den 2 betroffenen bibliotheken jedes mal die fehlermeldung:
"EApplication Error: ein anwendungsobjekt kann nicht in einem shared object erzeugt werden."
das lustige an dem fehler ist die tatsache, dass alle projekte nach dem gleichen muster gestrickt sind. und nur bei 2en machts BÄNG.
der fehler tritt genau beim befehl:
Delphi-Quellcode:

        try

      dllid := LoadLibrary(PChar(filename));

    except
      MessageBox(0,'Beim Einlesen einer Bibliothek kam es zu einem Fehler!', '', MB_ICONQUESTION or MB_OK);
      result:=0;
    end;
frage nun: warum kann ich 20 dlls importieren aber 2 nicht.

kann es irgendwie am dllentrypoint liegen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: loadlibrary problem

  Alt 29. Sep 2006, 13:55
Wie sieht die Dll aus? Gibt es einen Unterschied zwichen den 2 und den restlichen?
Markus Kinzler
  Mit Zitat antworten Zitat
Sauerkrautpoet

Registriert seit: 18. Jul 2006
Ort: Leipzig
20 Beiträge
 
#3

Re: loadlibrary problem

  Alt 29. Sep 2006, 14:05
Zitat von mkinzler:
Wie sieht die Dll aus? Gibt es einen Unterschied zwichen den 2 und den restlichen?
exakt nach dem gleichen muster gestrickte dll:
beinhaltet ne form und wird über ne function exportiert
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: loadlibrary problem

  Alt 29. Sep 2006, 14:26
Erzeugst du die Form vollkommen unabhänig vom Hauptprogramm oder benutzt du irgendwas aus dem Hauptprogramm?
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: loadlibrary problem

  Alt 29. Sep 2006, 14:33
Windows API Funktionen werfen keine Exception, wenn sie fehlschlagen, sondern geben meist einen Fehlercode zurück, den man auswerten kann, um festzustellen, warum die Funktion fehlgeschlagen ist:
Delphi-Quellcode:
hLib := LoadLibrary(...);
if hLib = 0 then
begin
  s := SysErrorMessage(GetLastError());
  ShowMessage(s);
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Sauerkrautpoet

Registriert seit: 18. Jul 2006
Ort: Leipzig
20 Beiträge
 
#6

Re: loadlibrary problem

  Alt 29. Sep 2006, 15:13
@ste_ett:
ich nutze nichts aus dem hauptprogramm, jedes form hat sein eigenes datenmodul auf das es zugreift.

@Luckie:
errormessage: "eine dll initialisierungsroutine ist fehlgeschlagen"

ich bin genauso schlau (oder auch nicht) wie vorher
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: loadlibrary problem

  Alt 29. Sep 2006, 15:18
Mit anderen Worten: Der Code im Initialization Teil bzw. zwischen Begin/End. in der DLL bzw. die Procedure die du in diesem Teil der DLLProc Variablen zugewiesen hast, gibt einen Fehler zurück.

Andere Möglichkeit: Die DLL benötigt eine statisch gelinkte andere DLL, welche sie nicht finden kann. Du kannst die statischen Abhängigkeiten von anderen DLL's einfach über das mitgelieferte TDump Tool von Borland rausfinden. Dieses findest du im Normalfall im BIN Ordner deiner Delphi Installation. Das Tool benötigt die DLL als Parameter und gibt dir die Informationen zu der DLL aus (z.b. in Datei umleiten zum lesen). Unter "Imports" werden alle von fremden DLLs statisch gelinkte Funktionen aufgelistet und in welcher DLL sie sein sollten.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#8

Re: loadlibrary problem

  Alt 29. Sep 2006, 15:22
Weitere Möglichkeit zum Anschauen der DLLs: Der Dependency Walker - ein manchmal wirklich unverzichtbares Tool

Der zeigt Dir dann auch gleich welche DLLs von wo aus angezogen werden, sehr nützlich bei Versionskonflikten. Listet ausserdem auch alle jeweils ex- und importierten Funktionen an.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Sauerkrautpoet

Registriert seit: 18. Jul 2006
Ort: Leipzig
20 Beiträge
 
#9

Re: loadlibrary problem

  Alt 29. Sep 2006, 15:54
Zitat von Muetze1:
...mitgelieferte TDump Tool von Borland rausfinden. ...
dafür habe ich bereits dependency walker..so richtig voran bringt mich das auch nicht, weil keine imports gefunden werden, nur meine 3 exports.

EDIT:
@oldgrumpy: danke für den tipp, das tool habe ich bereits
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#10

Re: loadlibrary problem

  Alt 29. Sep 2006, 17:01
Alternativ kannste mir eine der DLLs auch mal zugänglich machen, dann schau ich mal rein, wo das Ding auf die Nase fällt. Btw, GAR KEINE Imports? Das wäre aber doch schon etwas ungewöhnlich Unter w2k ist dem OS-Loader so ein Executable z.B. so suspekt dass das Laden verweigert wird (Genauer: In den Imports muss eine Systemkomponente auftauchen, ich bin mir gerade nicht sicher obs user32.dll oder kernel32.dll war, müsste ich mal nachschauen)
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:48 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