LabVIEWForum.de - Speicherproblem bei VI

LabVIEWForum.de

Normale Version: Speicherproblem bei VI
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich habe mir eine VI mit DLL-Einbindung gebastelt. Wenn ich dieses VI aus Labview ausführe, läuft das VI anstandslos durch. Wenn ich das VI jedoch als Exe ausführe, kommt bei jeder Ausführung die Fehlermeldung: Labview: Speicher ist voll.
Woran liegt das? Und wie kann ich das Problem beheben? RAM ist definitiv nicht voll (30% Auslastung).
Vielen Dank!
Hallo Lupus,

Unterschiede zw. VI und Exe entstehen oft durch fehlerhafte Pfadzuweisungen, gern in Verbindung mit der Funktion aktueller Pfad des VIs, der im VI immer ein anderer ist, als in der späteren EXE - zumindest war das in älteren LV-Versionen so.
Da ich dein VI aber nicht öffnen kann, ist das nur geraten. Speicher mal bitte unter LV2011
Falls es eine fehlerhafte Pfadzuweisung ist, versuchs mal damit:
In den Knoten nicht den Pfad zur DLL, sondern nur den reinen Namen eingeben. Die DLL muss sich dann allerdings in einem "Search-Path" befinden. Weiß jetzt nicht, was außer C:/Windows/system32 sonst noch alles zu den Suchpfaden gehört. Es sind jedenfalls etliche, mach Dich da mal selbst schlau oder probiers aus.
Hier ist die 2011-Version.
Vielen Dank!
Hallo lupus,

dein Problem ist ein ganz anderes.
Du startest dein VI in der EXE und hast keine Möglichkeit mehr, einen Pfad einzugeben, da dieser schon beim Start der Exe übernommen wird. Übernommen werden in deinem Beispiel die Standardpafde, also Leerpfade. Ob das mit deinem eigentlichen Problem zu tun hat kannst du später prüfen - so geht´s aber in keinem Fall. Du musst dir eine Möglichkeit schaffen, den Pfad zur Laufzeit anzupassen.
Wie mache ich das am besten? Ich schaue ja, ob die Pfade leer sind. Wenn sie das sind, dann wird das Programm nicht weiter ausgeführt, wenn sie nicht leer sind, wird das Programm ausgeführt. Damit müssten doch die korrekten eingegebenen Pfade übergeben werden, oder?
ich habe dich so verstanden, dass dieses VI dein Haupt-VI ist. Wenn es nur ein Sub-VI ist, dann muss das übergeordnete VI dafür sorgen, dass du die korrekten Pfade übergibst. Innerhalb dieses VIs kannst du die Pfade jedenfalls zur Laufzeit nicht mehr änden.

Ansonsten würde ich mal ein paar Ausgaben auf dem FP platzieren, um zu sehen, welche Werte die jeweiligen DLL-Aufrufe ausgeben - irgendwie muss man ja erstmal eingrenzen, wo der Fehler provoziert wird.
Dieses VI ist mein Haupt-VI. Ich habe es mittels Labview in eine Exe umgewandelt. Wenn ich diese Exe nun das erste Mal starte, erhalte ich die Fehlermeldung, dass keine Pfade angegeben seien (korrekt). Wenn ich die VI nun erneut über den Pfeil in der Menüleiste starte (mit angegebenen Pfaden), erhalte ich die Speicherfehlermeldung.
Was für Ausgaben soll ich denn auf dem Frontpanel platzieren?
Bei deiner Herangehensweise sind ein paar Grundsätzlichkeiten verkehrt, die wahrscheinlich zwar nichts mit deinem Problem zu tun haben, dir aber später auf die Füße fallen werden.

Der RUN-Pfeil hat in der EXE schonmal nichts zu suchen, der darf garnicht sichtbar sein. Jede Appl. hat eine Programmschleife, die solange läuft, wie die Appl. (exe) läuft. Innerhalb dieser Programmschleife platziert man üblicher Weise eine Eventstruktur, die bestimmte Events abarbeitet. Bei dir gibt es zur Zeit nur ein Event, nämlich die Abarbeitung deiner Schleife.

Wie gesagt - das hat sicher nichts mit deinem Fehler zu tun.
Deine DLL-Aufrufe geben ja an bestimmten Stellen Ausgaben zurück, irgendwelche Pointereingänge für nachfolgende VIs. Diese Ausgaben würde ich mal als Zahlenausgabe auf das FP bringen, damit du siehst, an welcher Stelle falsche Werte zurückkommen.
Naja, den Run-Pfeil habe ich doch immer in der VI, selbst, wenn ich es als Exe kompiliere, oder?
Seiten: 1 2
Referenz-URLs