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:

Nullterminierter String dll



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!

19.11.2012, 13:03 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2012 13:05 von SchwindelInside.)
Beitrag #1

SchwindelInside Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Dec 2005

2012 pro
2005
EN


Deutschland
Nullterminierter String dll
Hallo Forumsgemeinde,

Ich möchte die PCAN-BasicAPI.dll in Labview einbinden. Eine Funktion verlangt als Eingangsparameter einen null-terminierten String der Länge 256.
Laut API-Doku wird das in Delphi als PCHAR bzw. PAnsiChar, in .Net als StringBuilder und in C++ als LPSTR bewerkstelligt. Aber wie erstelle ich in Labview ein ensprechendes Controll, das ich mit dem Eingang des call library function node verbinden kann und welchen Datentyp stelle ich für diesen Eingang im CLFN ein?
Würde mich über lösungsdienliche Hinweise freuen. Vielen Dank schonmal.

Grüße
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.11.2012, 09:31 (Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2012 09:32 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Nullterminierter String dll

Akzeptierte Lösung

(19.11.2012 13:03 )SchwindelInside schrieb:  Hallo Forumsgemeinde,

Ich möchte die PCAN-BasicAPI.dll in Labview einbinden. Eine Funktion verlangt als Eingangsparameter einen null-terminierten String der Länge 256.
Laut API-Doku wird das in Delphi als PCHAR bzw. PAnsiChar, in .Net als StringBuilder und in C++ als LPSTR bewerkstelligt. Aber wie erstelle ich in Labview ein ensprechendes Controll, das ich mit dem Eingang des call library function node verbinden kann und welchen Datentyp stelle ich für diesen Eingang im CLFN ein?
Würde mich über lösungsdienliche Hinweise freuen. Vielen Dank schonmal.

Grüße
Stefan

Für das LabVIEW Control brauchst Du nichts besonderes zu machen. Den Parameter in der CLN konfigurierst Du als C String Pointer. LabVIEW macht dann den Rest für Dich. Ausser!!!! Wenn das ein Ausgangsstring ist, also ein Parameter wo die DLL was hineinschreibst, musst Du natürlich auch noch dafür sorgen, dass dieser String wirklich Platz für 256 Character hat. Ich mache das immer mit Initialize Array indem ich ein Byte Array von der gewünschten Länge alloziere und dann mit Byte Array To String in den String umwandle, aber seit etwa LabVIEW 8.5 kannst Du im CLN Konfigurationsdialog auch eine Minimallänge für String- und Arrayparameter konfigurieren.

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
20.11.2012, 17:10 (Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2012 17:38 von SchwindelInside.)
Beitrag #3

SchwindelInside Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Dec 2005

2012 pro
2005
EN


Deutschland
RE: Nullterminierter String dll
(20.11.2012 09:31 )rolfk schrieb:  Für das LabVIEW Control brauchst Du nichts besonderes zu machen. Den Parameter in der CLN konfigurierst Du als C String Pointer. LabVIEW macht dann den Rest für Dich. Ausser!!!! Wenn das ein Ausgangsstring ist, also ein Parameter wo die DLL was hineinschreibst, musst Du natürlich auch noch dafür sorgen, dass dieser String wirklich Platz für 256 Character hat. Ich mache das immer mit Initialize Array indem ich ein Byte Array von der gewünschten Länge alloziere und dann mit Byte Array To String in den String umwandle, aber seit etwa LabVIEW 8.5 kannst Du im CLN Konfigurationsdialog auch eine Minimallänge für String- und Arrayparameter konfigurieren.

Hallo Rolf,

vielen Dank für Deine Nachricht.
Die Mindesgröße hab ich noch mit hinzugefügt, den Rest hatte ich schon. Funktioniert super.
Mein Problem hatte eigentlich gar nichts mit Labview zu tun, sondern lag daran das ich ein Enum als Eingangsparamter verwechselt hatte. Ich dachte erst nur es liegt an der CLFN-Einstellung.
Aber Dein Post war trotzdem sehr aufschlussreich. Vielen Dank

Grüße
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: