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 

Dieses Thema hat akzeptierte Lösungen:

The invisible VI!



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!

08.01.2017, 15:13
Beitrag #1

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
Exclamation The invisible VI!
Servus,

ich habe es irgendwie geschafft, eine leere VI zu erzeugen, die von der ausführenden Labview-Instanz nicht als "VI in memory" erkannt wird Confused...
Genau genommen habe ich die VI nicht selbst erstellt, die genaue Quelle ist mir unbekannt. Mir ist nur irgendwann aufgefallen, dass diese VI weder im "VI hierarchy" Fenster noch unter den "VIs in memory" (application property node) angezeigt wird, was mir sehr merkwürdig vorkam. Die ursprüngliche VI enthielt keinen Code, der das irgendwie erklären konnte und das Entfernen von Code-Teilen hat nichts am Verhalten geändert. Das ging dann soweit, dass ich das komplette Blockdiagramm und Frontpanel gelöscht und alle "VI properties" auf Default-Werte gesetzt habe und die "blanke" VI-Datei als Kopie gespeichert habe.

Aus diesem "unsichtbaren" Template kann man sich dann ein beliebiges Programm basteln... Es verhält sich eigentlich nicht anders als jede andere VI (man kann es als subVI callen, per Referenz mit Dateipfad zugreifen und natürlich ganz normal ausführen), aber es taucht einfach nicht in der Hierarchie auf (und somit auch keine Child-Objekte). Gibt es irgendwelche flags, womit man die VI vor den "VIs in memory" verstecken kann (und das Hierarchie-Fenster baut ja vermutlich darauf auf) oder habt ihr irgendeine Erklärung dafür?

Hier sind ein paar Screenshots von einem Minimalbeispiel. Es ist ein triviales Programm, das die Uhrzeit anzeigt und es enthält den simple error handler, damit im "VI hierarchy" Fenster Child-Objekte angezeigt werden:

[Bild: attachment.php?aid=57140]
Nur "the invisible vi.vi" ist offen, das Hierarchie-Fenster ist leer.

[Bild: attachment.php?aid=57141]
Hier ist ein Vergleich mit einer "normalen" VI. Die clock.vi hat denselben Code wie die invisible, wurde aber normal über FIle -> New VI erstellt (und nur der Code reinkopiert). Zusätzlich zeigt die "Opened VIs.vi" alle "VIs in memory" mit offenem front panel - sie listet nur sich selbst und die clock.vi, aber nicht die invisible. Ebenso zeigt das Hierarchie-Fenster nur die clock.vi mit den Subroutinen sowie die "Opened VIs.vi", aber nicht die invisible.

Die invisible VI ist ca. 4kB größer als die clock.vi. Im Hexeditor sieht es so aus, als hätten die zusätzlichen 4kB der invisible VI was mit dem Icon Editor zu tun (das Icon wurde bearbeitet), währen die clock.vi ein Standard-Icon hat, das nie bearbeitet wurde. Darüber hinaus gibt es keine offensichtlichen Unterschiede, also können es wohl nur irgendwelche flags sein - hat jemand eine Idee?

Alle 3 VIs sind im Anhang (lv16_img). Die Tests wurden unter Win 10 x64 und Labview 2016 32bit gemacht. Ich habe auch versucht die invisible VI als vorherige Version zu speichern (lv14_img), aber sie zeigt dasselbe Verhalten.


Angehängte Datei(en) Thumbnail(s)
       

16.0 .vi  the invisible vi.vi (Größe: 13,7 KB / Downloads: 113)

16.0 .vi  clock.vi (Größe: 9,99 KB / Downloads: 117)

16.0 .vi  Opened VIs.vi (Größe: 10,28 KB / Downloads: 131)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
The invisible VI! - Novgorod - 08.01.2017 15:13
RE: The invisible VI! - BNT - 09.01.2017, 09:55
RE: The invisible VI! - jg - 09.01.2017, 17:36
RE: The invisible VI! - Novgorod - 09.01.2017, 17:57

Gehe zu: