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 

Parameterübergabe beim Call DLL Functions inLabVIEW



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!

02.03.2009, 20:26 (Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2009 08:24 von rolfk.)
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Parameterübergabe beim Call DLL Functions inLabVIEW
' schrieb:Danke, ich werde es mit dem DLL-Entwickler besprechen. Verstehe ich es richtig mit ENUM, dass man die Strings als reservierte Speicher ansehen kann (wie ByteArray) , wohin die Function etwas schreibt?

Nun ich weiss jetzt mal nicht wie die Funktion die Arrays zurückgibt. Grundsätzlich gibt es zwei Möglichkeiten die beide ihre Schattenseiten haben:

Erstens die DLL Funktion alloziert nichts selber sonderen erwartet dass das Array und die Pointer darin vom Aufrufer angelegt wird. Das ist wie man normalerweise in C mit Pointern umgeht. Der Aufrufer stellt den oder die Buffer in genügender Grösse zur Verfügung um der Funktion Raum zu geben um die Information hineinzuschreiben. Vorteil ist dass das Memory Handling eindeutig ist da der Aufrufer den Speicher anlegt und danach auch wieder freigibt. Nachteil ist, dass man entweder genau wissen muss wie gross die Buffer sind oder dass man den WorstCase abdecken muss der in den meisten Fällen viel zu viel Memory alloziert.

Zweitens kann die Funktion die Pointer innerhalb des zurückgegebenen Arrays selber anlegen. Vorteil ist dass nur soviel Speicher angelegt wird wie wirklich nötig ist. Nachteil ist dass die Speicherverwaltung nun an zwei Orten stattfindet, in der Funktion werden sie angelegt und der Aufrufer darf danach nicht vergessen um es alles wieder freizugeben.

Enumerierung der Strings hat nichts mit ENUM zu tun. Das sieht mehr in etwa so aus:

Die ursprüngliche Funktion:

[code]typedef struct {

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
Antwort schreiben 


Nachrichten in diesem Thema
Parameterübergabe beim Call DLL Functions inLabVIEW - rolfk - 02.03.2009 20:26

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  SubVI mit DLL Call fehlt in exe NoWay 1 6.228 30.08.2019 13:15
Letzter Beitrag: Freddy
  relativ Pfad für Call Library Function GT123 4 7.502 05.11.2012 16:18
Letzter Beitrag: rolfk
  Registerkarte "Callbacks" im Call Library Function Node. wernerIBN 4 9.707 01.12.2010 14:24
Letzter Beitrag: wernerIBN
  DLL mit Pointer - Einbindung inLabVIEW sebastian1986 3 6.150 24.11.2009 21:02
Letzter Beitrag: rolfk
  Einführung inLabVIEW Kapitel 15 subzero128 12 10.797 24.08.2009 07:57
Letzter Beitrag: rolfk
  C-Code inLabVIEW Embedded for ARM ? amin 10 13.857 20.08.2009 11:06
Letzter Beitrag: KalleKrabowski

Gehe zu: