AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi "Zu viele aufeinanderfolgende Exceptions..." beim DLL-Laden
Thema durchsuchen
Ansicht
Themen-Optionen

"Zu viele aufeinanderfolgende Exceptions..." beim DLL-Laden

Ein Thema von MatthiasR · begonnen am 10. Sep 2007 · letzter Beitrag vom 10. Sep 2007
Antwort Antwort
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

"Zu viele aufeinanderfolgende Exceptions..." beim

  Alt 10. Sep 2007, 15:02
Hallo allerseits,

ich habe folgendes Problem: wir haben in unserer Anwendung einen ganzen Haufen Formulare, die ich gerne (gruppiert nach Themengebieten) in Programmmodule auslagern würde. Da wir Formulare grundsätzlich immer über eine Steuer-Funktion ansprechen, die das Erzeugen, Anzeigen und wieder Freigeben beinhaltet, habe ich mir gedacht, ich könnte doch die Formulare in DLLs packen und jeweils die Steuerfunktionen als Schnittstelle exportieren. Gesagt getan. Nun bekomme ich aber in meiner Hauptapplikation beim Laden der DLL nach geraumer Zeit folgenden Fehler:

---------------------------
Benachrichtigung über Debugger-Problem
---------------------------
Im Projekt C:\PfadzumProjekt\Hauptapplikation.exe sind zu viele aufeinander folgende Exceptions aufgetreten: ''Zugriffsverletzung bei 0x023d456e: Lesen von Adresse 0x04634f44''. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Ich habe sowohl versucht, die DLL dynamisch über LoadLibrary zu laden, als auch statisch bei Programmstart. Beides mal bekomme ich die besagte Fehlermeldung. Im ersten Fall logischerweise erst, nachdem ich LoadLibrary aufgerufen habe. Weiß jemand, woran das liegen kann?

Über die Sinnhaftigkeit, Formulare in DLLs zu packen, lässt sich streiten. Funktionieren sollte es allemal, solange man keine Objekte über die Schnittstelle hinweg austauschen will, oder?!?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: "Zu viele aufeinanderfolgende Exceptions..." b

  Alt 10. Sep 2007, 15:13
kannst du mal zeigen wie deine exportierten Funktionen aussehen? (also der Header)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: "Zu viele aufeinanderfolgende Exceptions..." b

  Alt 10. Sep 2007, 15:15
1. Deinen Aussagen entnehme ich, dass dieser Fehler auftritt noch bevor du eine Funktion aus der DLL benutzt. Ist das richtig?

(2. Kannst du die prinzipielle Struktur der DLL und des Aufrufs aus dem Hauptprogramm bitte darstellen? ) .. steht ja schon im roten Kasten
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#4

Re: "Zu viele aufeinanderfolgende Exceptions..." b

  Alt 10. Sep 2007, 15:49
Zitat von sirius:
1. Deinen Aussagen entnehme ich, dass dieser Fehler auftritt noch bevor du eine Funktion aus der DLL benutzt. Ist das richtig?
Vollkommen richtig.
Zitat von sirius:
(2. Kannst du die prinzipielle Struktur der DLL und des Aufrufs aus dem Hauptprogramm bitte darstellen? ) .. steht ja schon im roten Kasten
Welcher rote Kasten?

Was ich grade zu meiner Schande bemerkt habe: die Schnittstellenfunktion hat doch ein Objekt als Parameter, und zwar den Sender als TControl . Also schaut meine Schnittstellenfunktion (bisher) noch so aus:
function ZeigeAn(Sender: TControl; AufrufModus: Integer): boolean; Könnte das schon des Rätsels Lösung sein?

Wobei ich noch an einer anderen Stelle ein größeres Problem ausgemacht habe, das mir die Auslagerung der Formulare ohnehin unmöglich macht: innerhalb der auszulagernden Formulare wird das Main-Formular referenziert, ein Unding sondersgleichen, aber ist leider so. Daher kann ich die Unterformulare erstmal nicht ohne weiteres vom Rest entkapseln. Daher muss mein Vorhaben vorerst mal auf Eis gelegt werden :-/ . Trotzdem danke für die Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: "Zu viele aufeinanderfolgende Exceptions..." b

  Alt 10. Sep 2007, 15:58
Zitat:
Welcher rote Kasten?
Wenn man seinen Beitrag abschickt und zwischendurch hat jemand (hier SirT***) auch einen Beitrag geschrieben, dann kommt so ein roter Kasten mit diesem neuen Beitrag und ich darf mein gleich nochmal editieren. Soll heißen, als ich Sir's Beitrag sah, habe ich um meinen Punkt 2 eine Klammer gesetzt.

Der "Sender" als solches macht erstmal kein Problem. Aber du wirst ihn ja benutzen und dann wird es höchstwahrscheinlich zu Problemen kommen.

Das alles erklärt für mich allerdings nicht, dass Fehler noch vor dem Aufruf einer Funktion auftreten

Zitat:
mein Vorhaben vorerst mal auf Eis gelegt werden
Na dann
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: "Zu viele aufeinanderfolgende Exceptions..." b

  Alt 10. Sep 2007, 16:26
Zitat von Infect:
wir haben in unserer Anwendung einen ganzen Haufen Formulare, die ich gerne in Programmmodule auslagern würde.... könnte doch die Formulare in DLLs packen
Warum verwendest du keine Packages ?
Die DLLs können sowieso nicht von anderen Programmiersprachen genutzt werden.
Wenn du keine Packages benützt, dann zieht jede DLL einen Grossteil der VCL (~ 300 - 500 kb) nach sich.

Angenommen dein Programm benötigt als Anwendung mit allen Formularen in einer exe z.B. 10 MB.
Dann würde die Anwendung mit 5 DLLs (ausgelagerte Formulare) vielleicht 13 MB benötigen.
(und zwar nicht nur auf Platte, sondern auch im RAM)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: "Zu viele aufeinanderfolgende Exceptions..." b

  Alt 10. Sep 2007, 16:36
@shmia:
Abgesehen davon, dass sich das Thema für den OP eh erledigt hat und dass du mit dem NAchteil der Größe der DLLs Recht hast, aber:
Zitat:
Die DLLs können sowieso nicht von anderen Programmiersprachen genutzt werden.
Warum das? Die VCL wird ja, wie du richtig gesagt hast schön in der DLL mitgeschleppt. Von außen sollte es nur eine einfache "start" und "stop" - Funktion geben. Dadurch kann man doch auch von z.B. einer ASM-Anwendung das schöne VCL-Gerät aufrufen.
Oder habe ich jetzt etwas übersehen?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:55 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