2017-02-24 5 views
1

Ich bekomme ein extrem seltsames Verhalten. Ein Objekt scheint zur gleichen Zeit null und nicht null zu sein, und eine Anweisung wird übersprungen. Ich bin wahrscheinlich ein Idiot, aber wenn es meine Schuld ist, sehe ich es nicht. Ich baue mit Visual Studio 2008 auf einem Windows 7 SP1 OS.C#: Objekt ist sowohl null als auch nicht null

Das Objekt opcDriver wurde erfolgreich erstellt und an diese Methode übergeben. Wenn ich durchtrete, wird die Anweisung "int a = 1" ausgeführt. Dann wird im nächsten if-Block die Ausführung zur "throw ex" -Anweisung geführt, ohne die darüber liegende Zeile auszuführen, die das ex-Objekt erzeugt. Also, ex ist null und das Werfen von null gibt mir eine Zugriffsverletzungsausnahme.

Haben Sie eine Idee, was hier passieren könnte?

Ein paar Mitglieder der OpcDriver-Klasse sind Instanzen von Klassen aus einer 15 Jahre alten ungarantierten, nicht unterstützten Beispielbibliothek, die COM als Schnittstelle zu einem OPC-Programm (OLE for Process Control) verwendet. Das einzige, was mir einfällt, ist, dass irgendwo in den Tiefen dieser Bibliothek etwas Groteskes passiert, aber ich kann mir nicht vorstellen, wie das möglich sein kann.

Vielen Dank.

+5

wo ist 'OpcDriver' - überlädt es irgendwelche Bediener? –

+0

Ich vermute, Sie haben versucht, die saubere, Neustart VS, saubere Build-Routine? Außerdem würde ich einen Haltepunkt setzen und sehen, was das Überwachungsfenster "opcDriver" denkt. –

+1

Haben Sie die richtige .pdb und den Quellcode? –

Antwort

0

Sie sollten auf neueren Visual Studio Build versuchen. Ich habe fast dasselbe Problem in den Versionen 2008 und 2012. Es ist ein Visual Studio Kompilierzeit Bug. Sie sollten Ihre Build-Option überprüfen, wenn Sie den "release" -Modus gewählt haben, sollten Sie das Debug-Verfahren erneut durchführen und es erneut versuchen.

0

Zusammenfassend ist es wahrscheinlich die Wurzel des Problems ist falsche Überladung des Operators (== und/oder! =). Der Test if (Object.ReferenceEquals(opcDriver, null)) funktioniert wie erwartet.

Verwandte Themen