| 

.NET C# Java Javascript Exception

4
Liebe Gemeinde,
sporadisch erhalte ich von meiner VB6 Anwendung die in der Überschrift enthaltene Fehlermeldung.
Die Meldung erscheint, wenn ich ein Object aufrufe, welches sich in einer verwiesenen DLL Datei befindet. Der Fehler lässt sich leider nicht auf meinem Entwicklungs- PC reproduzieren sondern nur auf dem PC auf dem die Anwendung betrieben wird.
Die DLL Datei befindet sich im system32 Ordner und ist von Siemens. Sie dient zur Kommunikation einer Anwendung mit einem OPC Server. Ein OPC Server wird dazu verwendet, Informationen zwischen Anwendung und SPS auszutauschen.
Also keine Windows eigene DLL.

Wie bereits gesagt, tritt der Fehler willkürlich auf. Nach einem Neustart der Anwendung funktioniert diese meist auch wieder. Ich habe micht jetzt bereits tagelang durch das Internet gegooglet und auch einige Ansätze gefunden und nachverfolgt. Jedoch brachte keiner die Lösung meines Problems.

In diversen Foren wird beschrieben, dass der Funktionszeiger der Anwendung die Referenz auf mein Objekt verliert, wodurch diese Meldung hervorgerufen wird. Leider hilft mir diese Info nicht großartig weiter, weil es nur das Problem beschreibt und nicht, wie ich es beheben kann.

Das schlimme ist, dass ich einige Computer mit dieser Software im Einsatz habe und bei keinem tritt dieses Problem auf. Vielleicht hat jemand von euch die Lösung.
Ich bin so ziemlich ratlos.

Einige Infos noch. Das Betriebssystem des PCs ist Windows XP Pro. SP 3 englisch.

Wenn ihr fragen habt, einfach fragen. Vielen Dank schon mal für eure Unterstützung.

Was noch zu sagen wäre, die Anwendung verwendet an mehreren Stellen nur eine Instanz dieses Objekts (die selbe). Nur an einer besagten Stelle im Code tritt dieser Fehler immer auf und an allen anderen Stellen funktioniert der Zugriff auf das Objekt problemlos.
News:
13.02.2013
sansibar 66 4
3 Antworten
2
DLL ist natürlich nicht gleich DLL. Handelt es sich um eine echte DLL oder eine ActiveX-DLL?

Ich nehme an, hier ist letzteres der Fall und diese liegt in einer eindeutigen Version vor (auf allen Rechnern gleich) und diese ist korrekt auf allen Rechnern registriert.

Die Anbindung der ActiveX-DLL erfolgt dann unter VB6 über einen Objektverweis, der in einer Objektvariablen gesichert wird. Wie ist die Gültigkeit dieser Variablen, wann erfolgt die Verweiserstellung und ist sichergestellt, das deren Wert wirklich nicht verloren geht?

Per Fehlerbehandlung und Wertüberwachung zum Objektverweis, lässt sich der Code optimieren und verlorene Verweise - sofern erforderlich - wiederherstellen. Leider kann ich nicht absehen, ob der Objektverweis einmalig gemacht wird (global für die Anwendung) oder nach Bedarf temporär beim Aufruf bestimmter Methoden (vielleicht ist der Zugriff auch nicht einheitlich geregelt).

Wenn der fehlerhafte Aufruf wirklich nur an einer Stelle im Quelltext geschieht und alle anderen Objektmethoden keine Probleme bereiten, und das bei gleichem Objektverweis, dann muss auch an dieser Stelle die Ursache für das Problem liegen! Aber das ist ohne Quelltext nicht nachvollziehbar.
13.02.2013
VbFan 460 1 8
VbFan 460 1 8
0
Hast Du mal den Virenscanner/Firewall deaktiviert und mögliche Schreib/Leserechte auf die Datei geprüft?
Wenn es nicht auf allen Rechnern auftaucht, dann kann es auch hieran liegen.
15.02.2013
judgy 3,0k 1 1 8
0
Die DLL ist eine Aktive X DLL.
Die Objektvariable beinhaltet sozusagen eine Serverinstanz.
Diese Instanz ist in meinem Main Modul als public deklariert.
Jedes Formular greift im Laufe der Ausführungszeit auf dieses public Objekt zu.

Daher wird der Objektverweis einmalig für die Anwendung erstellt.

Lese- / Schreibrechte habe ich geprüft. Virenscanner hatte ich bisher noch nicht geprüft. Wäre aber auch mal ein Ansatz, wobei auf den anderen Computer der gleiche Virenscanner installiert ist.
18.02.2013
sansibar 66 4

Stelle deine Dll-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH