INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Fehlercode 2002200



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

29.08.2012, 09:34
Beitrag #1

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
Fehlercode 2002200
Hallo zusammen,

ich habe folgendes Problem:

Ich starte aus einer Exe heraus ein VI aus einer DLL, welches wiederum ein anderes VI aus einer anderen DLL startet.
in der fertigen EXE / DLLs bekomme ich dann den Fehler 2002200.
Wenn ich diese Starterei in der Entwicklungsumgebung mache und die jeweiligen VIs nicht aus den DLLs sondern aus meinem VI-Verzeichnis starte, dann läuft alles, wie es soll.

Hat jemand ggf. schonmal mit dem Fehler 2002200 zu tun gehabt oder gar eine Idee, was LV stören könnte?


Danke im voraus für Vorschläge

Ich benutze LV 8.0
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2012, 12:44
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Fehlercode 2002200
Hi
Nebenbemerkung: LabVIEW 8.0 ist mit Abstand die schlechteste Version, die NI jemals veröffentlicht hat. Du solltest unbedingt auf eine neuerer Version aktualisieren. Welche ist fast egal. Alle sind besser! Dadurch erledigt sich Dein Problem ja möglicherweise von selbst.

Nur zum eigentlichen Problem:
Wenn Du VIs in DLL, zudem verschiedene, kompilierst, werden diese in verschiedenen Laufzeitumgebungen ausgeführt, die nichts miteinander zu tun haben. Z.B. kannst Du zwischen diesen VIs nicht einfach via Queue kommunizieren. Das gilt vermutlich auch für verschiedenen Referenzen etc.

Was auch immer die Gründe für das Kompilieren in verschiedene DLL anstelle des einfachen Linkens in das eine Executable sind, Du solltest diesen Ansatz überdenken.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2012, 13:22
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Fehlercode 2002200
Vielleicht irgendwas mit Sonderzeichen in VI-Namen, vgl. hier:
http://forums.ni.com/t5/LabVIEW/Error-20...-p/1148224

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2012, 23:17
Beitrag #4

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Fehlercode 2002200
Deutsche Umlaute auf 'nem arabisch-sprachigem Betriebssystem ist schon sehr außergewöhnlich.
Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2012, 18:06
Beitrag #5

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Fehlercode 2002200
Hallo Holger, Hallo Jens

vielen Dank erstmal für Eure Anregungen.
Ich programmiere bisher in LV 8.0, weil NI die Angewohnheit hat, dass in Nachfolgeversionen immer irgend etwas nicht mehr geht, was schonmal ging, beispielsweise zeigte sich in der 2011-er Version ein Dateidialog hinter Floating-Fenstern.( Sowas kann ich meinen Kunden nicht anbieten)
Zudem funktionierte die Abfrage, ob ein Bedienelement den Focus hat nicht mehr (Das waren nur 2 Bugs, die ich bemerkt hatte - wer weiß, was es noch so gab. Deshalb bin ich im Laufe der Jahre sehr vorsichtig mit Updates geworden und bin irgendwann von 7.1 auf 8.0 gesprungen - werden jetzt aber wohl mal auf 2012 gehen.

Die Sache, dass verschiedene DLLs in 8.0 nicht mit Queues untereinander kommunizieren könnten stimmt nicht - Meine gesamte innerhalb von 8 Jahren entstandene, recht umfangreiche Software basiert darauf, dass die DLLs untereinander über Queues und globale Variablen kommunizieren können.
Die Aufteilung in DLLs als Software-komponenten hat seinen Grund darin, dass ich, wenn ich an einem Kundenprojekt arbeite, nur diese application.dll neu erstellen muss und nicht den ganzen Kram drum herum, außerdem läge der Gesamtumfang einer EXE inzwischen bei gut 30 MB.

Nun aber zum eigentlichen Problem, dem ich ein Stück näher gekommen bin. Ich habe meine Kunden-DLL soweit reduziert, bis ich nur noch das Express-VI "Masken und Grenzwerttest" im VI hatte. Das Starten dieser DLL brachte dann 2 Mal die Fehlermeldung 2002200.
Als ich dann dafür sorgte, dass eine früher aufgerufene DLL, die dann später die Kunden-DLL aufruft schon dieses Express-VI lädt, ging es dann. - Verstanden habe ich das Ganze aber nicht!

Ein Support-Mensch von NI konnte mir bisher auch nicht sagen, wann denn dieser Fehlercode generiert wird, genausowenig wie die Homepage von NI - gibt man dort in der Suche diesen Code ein, findet er nix.
Sehr mysteriös, das ganze.

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.09.2012, 13:49
Beitrag #6

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Fehlercode 2002200
(01.09.2012 18:06 )Trinitatis schrieb:  Die Sache, dass verschiedene DLLs in 8.0 nicht mit Queues untereinander kommunizieren könnten stimmt nicht - Meine gesamte innerhalb von 8 Jahren entstandene, recht umfangreiche Software basiert darauf, dass die DLLs untereinander über Queues und globale Variablen kommunizieren können.
Die Aufteilung in DLLs als Software-komponenten hat seinen Grund darin, dass ich, wenn ich an einem Kundenprojekt arbeite, nur diese application.dll neu erstellen muss und nicht den ganzen Kram drum herum, außerdem läge der Gesamtumfang einer EXE inzwischen bei gut 30 MB.

Sorry, ich hatte ungenau formuliert. I referenziere Queues gern mit Namen, und das geht dan schief. Wenn man die Queue-Referenz in die DLL verdrahtet funktioniert es, wie Du richtig feststellst.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.09.2012, 07:32 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2012 07:33 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
u
(03.09.2012 13:49 )BNT schrieb:  Sorry, ich hatte ungenau formuliert. I referenziere Queues gern mit Namen, und das geht dan schief. Wenn man die Queue-Referenz in die DLL verdrahtet funktioniert es, wie Du richtig feststellst.

Das sollte keinen Unterschied machen. Solange die DLLs alle mit der gleichen LabVIEW Version erstellt sind und daher in der gleichen LabVIEW Runtime laufen sind Queues ob nun By Name oder By Refnum von allen DLLs zugänglich. Die einzige Einschränkung hierzu ist, dass LabVIEW 8.0 einen Bug hat der Queues und die anderen Synchronisationsobjekte Prozess global macht. Von LabVIEW 8.2 an haben sie das korrigiert so dass diese Objekte nur innerhalb eines Applikationskontextes austauschbar sind. Jedes Projekt ist ein Applikationskontext, daneben gibt es noch den Main Kontext wenn VIs ausserhalb eines Projektes ausgeführt werden, und innerhalb eines Executables ist auch ein Applikationskontext.

Das Ganze geht garantiert schief, wenn die DLLs nicht alle in der selben LabVIEW Version kompiliert sind. Dann werden sie nämlich in einer Art Out of Process Methode innerhalb eines für die jeweils der LabVIEW Version entsprechenden Runtimesystems ausgeführt und das ist für alle praktischen Gegebenheiten vergleichbar mit einer Ausführung in einem eigenen Prozess.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2012, 10:50
Beitrag #8

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Fehlercode 2002200
Hi Rolf

Vielen Dank für die Erläuterungen. Es ist doch schon recht lange her, dass ich mit Queues und Notifications in DLLs experimentiert habe.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Fehlercode 57 bei der Installation Basti S. 12 22.107 27.11.2019 11:02
Letzter Beitrag: jg

Gehe zu: