Forums Neueste Beiträge
 

Abfangen fehlender Verweise auf DLLs

02/03/2009 - 15:04 von Jens Müller | Report spam
Hallo,

ich setzte in meinem Projekt einen Verweis auf eine dritt-COM-Komponente, um
frühes Binden zu ermöglichen, will aber gerne trotzdem abfangen und eine
aussagekràftige Fehlermeldung anzeigen, wenn die DLL nicht
existieren/registriert sein sollte.

Wie gehe ich vor?

Danke!
 

Lesen sie die antworten

#1 Dieter Strassner
02/03/2009 - 15:50 | Warnen spam
Hallo Jens,

ich setzte in meinem Projekt einen Verweis auf eine
dritt-COM-Komponente, um frühes Binden zu ermöglichen, will aber
gerne trotzdem abfangen und eine aussagekràftige Fehlermeldung
anzeigen, wenn die DLL nicht existieren/registriert sein sollte.



Beides zusammen wirst Du nicht so ohne weiteres hinbekommen.

Bei früher Bindung mit Controls wird beim laden schon durch die Runtime
geprüft ob das Laden möglich ist.
Wenn nicht wird mit Fehler abgebrochen. Welche fehlende Komponente die
Ursache hierfür war, wird (soweit ich das trotz Fehlerhandlung erleben
dürfte), leider nicht immer verraten.

Bei DLLs sieht es schon besser aus.
Da ist es (sowieso immer) sinnvoll statt
DIM oXX new Zugekaufte.Komponente
besser zu schreiben

DIM oXX = Zugekaufte.Komponente
und erst vor der ersten Benutzung
SET oXX = new Zugekaufte.Komponente
zu instanziieren. Hier làßt sich der Fehler elegant abfangen und anzeigen.
Bei OCXn geht das halt leider nicht so einfach.

Was auch geht: Mit früher Bindung Programmentwicklung & Test, mit spàter
Bindung compilieren, dann nochmals testen und verbreiten. Siehe dazu auch
Olaf Schmidts "ComDirect" und "dh_CtlLoader". Funktioniert mit DLLs und mit
OCXn (und auch mit Events bei spàter Bindung!). Ist mit etwas Einarbeitung
und lernen verbunden, klappt aber sicherlich...

Was noch Möglichkeit wàre: Eine "Prüf.EXE" voranschalten die alle Komponten
mit spàter Bindung instanziert und hierbei auch aussagekràftige Fehler
anzeigen kann.
Oder noch viel besser: Einen kompletten und "wasserdichten" SETUP


Viele Grüße

Dieter


Rückfragen bitte nur in die Newsgroup!

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz

Ähnliche fragen