LabVIEWForum.de - DLL-"Ausgabe" in LabVIEW String-Indicator

LabVIEWForum.de

Normale Version: DLL-"Ausgabe" in LabVIEW String-Indicator
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Wach! :-)

Folgendes Szenario: Ich habe eine DLL in C geschrieben, diese hat einen Zeiger als Parameter vom Typ char (char *str).

In der DLL werden jetzt nacheinander über sprintf(str, "Text"); gößere Textsegmente ausgegeben. Das Resultat ist eine Art Logfile. Dieses möchte ich jetzt in ein Textfeld (String Indicator od. ähnliches) in LabVIEW darstellen.

Mit dem "Call Library Node" funktioniert das ganze schon im Groben, nur das mir im String-Indicator lediglich die letzte Ausgabe angezeigt wird. Für den Parameter habe ich den besagten "String-Indicator" angeschlossen.

Vom logischen her macht das ganze auch Sinn, da die Funktion sprintf bei einem erneuten Aufruf den vorherigen Speicherinhalt wieder überschreibt (aus C Sichtweise).

Ich möchte jedoch soz. eine String-Konkatenation in LabVIEW durchführen, um so die verschiedenen "Ausgaben" der DLL in einem großen Textfeld darzustellen. Mit den String-Operatoren bin ich bisher nicht weiter gekommen.

Jemand 'ne Idee od. einen Tipp wie man das bewerkstelligen könnte?


Gruß, Anus+
Hi!

Rufst du die Dll in einer Schleife auf? dann kannst du zB. per Shift Register immer den aktuellen String an den vorigen anhängen.

Lg Stefan
Hallo oppossom!

Danke für den Tipp, doch leider rufe ich die DLL nicht in einer Schleife auf. Gibt es evtl. noch eine andere Möglichkeit?

Ansonsten wird mir wohl nichts anderes übrig bleiben, als die DLL umzuschreiben.Sad


Gruß, Anus+
Hi,

kannst du mal ein Bild vom dll-Aufruf posten? dann kann ich mir leichter vorstellen, wie das ablaufen soll...
Wie bekommst du deine(n) Stirng(s) aus der dll? einzeln oder als Array?

Lg
Eigentlich gibt es da nicht viel zu posten, aber hier ist es. ;-)

Die Eingabeparameter habe ich im Moment noch nicht implementiert, hängen somit also auch noch nicht drann und sind in der DLL hartkodiert.

Die Strings kommen einzeln aus der DLL.


Gruß, Anus+
Naja, wenn du die dll aufrufst befindet sich LV so lang im dll Knoten, bis es eben beendet wird... und dann hast du nur mehr den letzten String als Rückgabewert.
Also entweder du rufst die Dll öfter auf und suchst dir den jeweiligen String per Parameter aus, oder du gibst aus der Dll ein Array of Strings zurück.

Lg Stefan
Referenz-URLs