Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
Hallo,
ich habe gerade folgende Problem, dass ich immer wieder an einer stelle, an der ich auf ein Interface zugreife eine exception [AccessViolation] bekomme.
Das Programm ist wie folgt aufgebaut:
Eine Grundlegende Factory, welche Bausteininstanzen erzeugen soll.
FactoryBase implements IFactoryBase
Diese hat intern ein Interface, welches auf ein Basistypen zeigen soll.
BaseInterface : IBaseFB
Zusätzlich ist intern ein Basistyp deklariert:
Baseinstance : BaseFB; // Dieser wird dem Interface zugewiesen.
Zusätzlich hat die Factrory auch eine GetElement Methode, welcher als Initialisierung ein element vom Typ IBaseFB übergeben wird.
In dieser Methode wird dann über BaseInterface.CheckInterface(Element) eine Methode das Basisbausteins BaseFB aufgerufen.
Innerhalb dieser Methoe möchte ich dann über eine __Queryinterface abfragen, ob die Instanz, welche von außen als init übergeben wurde auch zum typ passt.
genau an der stelle kommt die exception.
Hat jemand eine Idee?
Ich hoffe es war halbwegs verständlich.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Habe nun herausgefunden,
Dass wenn ich die Instanz auf die das Interface zeigt schon mal irgendwie beschrieben habe,
Dann erscheint die wxceptiob, aber warum?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Habe es raus bekommen. sehr blöder Fehler meinerseits.
Es wurde ein Interface auf ein Arrayelement mit index 11 gelegt, das Array war allerdings nur bis 10 deklariert.
Leider bekam ich dann erst beim Interfaceaufruf eine exception und nicht beim zugriff auf das ungültige Element.
Wie ist es denn möglich in einem solchen Fall das Interface auf seine Gültigkeit zu prüfen?
(Es war ja ungleich null)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OOP hat geschrieben:
Habe es raus bekommen. sehr blöder Fehler meinerseits.
Es wurde ein Interface auf ein Arrayelement mit index 11 gelegt, das Array war allerdings nur bis 10 deklariert.
Leider bekam ich dann erst beim Interfaceaufruf eine exception und nicht beim zugriff auf das ungültige Element.
Wie ist es denn möglich in einem solchen Fall das Interface auf seine Gültigkeit zu prüfen?
(Es war ja ungleich null)
Bausteine für implizite Prüfungen hinzufügen. (Checkbounds).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
ich habe gerade folgende Problem, dass ich immer wieder an einer stelle, an der ich auf ein Interface zugreife eine exception [AccessViolation] bekomme.
Das Programm ist wie folgt aufgebaut:
Eine Grundlegende Factory, welche Bausteininstanzen erzeugen soll.
FactoryBase implements IFactoryBase
Diese hat intern ein Interface, welches auf ein Basistypen zeigen soll.
BaseInterface : IBaseFB
Zusätzlich ist intern ein Basistyp deklariert:
Baseinstance : BaseFB; // Dieser wird dem Interface zugewiesen.
Zusätzlich hat die Factrory auch eine GetElement Methode, welcher als Initialisierung ein element vom Typ IBaseFB übergeben wird.
In dieser Methode wird dann über BaseInterface.CheckInterface(Element) eine Methode das Basisbausteins BaseFB aufgerufen.
Innerhalb dieser Methoe möchte ich dann über eine __Queryinterface abfragen, ob die Instanz, welche von außen als init übergeben wurde auch zum typ passt.
genau an der stelle kommt die exception.
Hat jemand eine Idee?
Ich hoffe es war halbwegs verständlich.
Dachte hätte was gefunden, aber war wohl nicht so
Habe nun herausgefunden,
Dass wenn ich die Instanz auf die das Interface zeigt schon mal irgendwie beschrieben habe,
Dann erscheint die wxceptiob, aber warum?
Habe es raus bekommen. sehr blöder Fehler meinerseits.
Es wurde ein Interface auf ein Arrayelement mit index 11 gelegt, das Array war allerdings nur bis 10 deklariert.
Leider bekam ich dann erst beim Interfaceaufruf eine exception und nicht beim zugriff auf das ungültige Element.
Wie ist es denn möglich in einem solchen Fall das Interface auf seine Gültigkeit zu prüfen?
(Es war ja ungleich null)
Bausteine für implizite Prüfungen hinzufügen. (Checkbounds).