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 

Einbinden einer DLL mit mehr Output-Parametern, als Input-Parametern



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!

09.06.2011, 12:37
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Einbinden einer DLL mit mehr Output-Parametern, als Input-Parametern
(09.06.2011 10:34 )Herm schrieb:  Hallo,

Ich beschäftige mich im Rahmen meiner Studienarbeit seit kurzem mit Labview und besonders mit dem Einbinden von DLLs.
Die DLL die ich in Labview einbinden soll besitzt drei Input-Parameter und sieben Output-Parameter. Die Output-Parameter erhalten in der DLL ihre Input-Werte, aber Labview verlangt für jeden Parameter einen Input.
Mit welchen Modulen bzw. Werten kann ich die Input-Stellen der Output-Parametern belegen, damit Labview mit dieser DLL arbeiten kann?

Grüße

Herm

Was sind den das für Output Parameter? Für jeden Funktionsparameter musst Du einen korrekten Call Library Node Parameter konfigurieren. Inputparameter werden meist By Value (kein Pointer) übergeben wenn es Skalars sind. Outputparameter werden immer By Reference (als Pointer übergeben). Das muss man für den jeweiligen Parameter auch korrekt in der CLN Konfiguration festlegen.

Auch Outputparameter müssen durch den Aufrufer bereitgestellt werden, wobei hier der Wert meist nicht wichtig ist, aber die korrekte Speichergrösse umso mehr. Das ist vor allem wichtig wenn Du Strings oder Arrays hast in die die DLL Funktion etwas einfüllen soll. LabVIEW kann nicht wissen wie gross diese Strings oder Arrays sein müssen und macht deshalb auch keinerlei Anstalten das für Dich zu erledigen, ganz im Gegensatz zu allen anderen Situationen wenn Du ganz innerhalb LabVIEW bleibst. Daher darf man nicht vergessen den entsprechenden Buffer mittles Initilialize Array (und für Strings dann noch Byte Array to String) diesen Buffer vor dem Aufruf korrekt anzulegen. Sonst gibt es ganz hässliche Effekte da die DLL Speicher überschreibt den Sie nicht überschreiben darf da sie frisch fröhlich in den angebenen Speicher des Parameters schreibt der aber dazu nicht gross genug ist.

Also das was im Wire ist den Du an die Eingangsseite eines Outputparameters anschliesst ist meist völlig unwichtig, dass da aber ein Speicher vorhanden ist der gross genug ist für die Funktion um dass was sie gerne mitteilen möchte da auch hineinzuschreiben umso mehr.

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
RE: Einbinden einer DLL mit mehr Output-Parametern, als Input-Parametern - rolfk - 09.06.2011 12:37

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL Dimitri 24 27.166 02.07.2010 15:16
Letzter Beitrag: Dimitri
  Einbinden einer dll (*.so) Apu 3 6.331 08.03.2010 19:51
Letzter Beitrag: rolfk
  Einbinden einer DLL, Speichermanagement Mictlantecutli 3 7.932 14.10.2009 08:33
Letzter Beitrag: Mictlantecutli
  Problem beim Einbinden einer DLL preacha 18 19.224 25.09.2008 11:51
Letzter Beitrag: baliik
  Einbinden einer Delphi-dll Svenni 6 8.377 17.10.2006 12:05
Letzter Beitrag: Svenni

Gehe zu: