LabVIEWForum.de - DLL - Zeiger auf TParameter Struktur

LabVIEWForum.de

Normale Version: DLL - Zeiger auf TParameter Struktur
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Mahlzeit zusammen,

stocke gerade beim einbinden einer DLL- Funktion und benötige etwas hilfe dabei.

Der Aufruf der Funktion lautet:
long WriteReq (long Handle, TParameter * pParameter)


TParameter * ist definiert:

Byte[256], WORD, BYTE, BYTE , BYTE, BYTE


Eingestellt habe ich den Parameter auf den Typ "An Typ anpassen", die Werte übergebe ich als Cluster wo die entsprechenden Typen eingebunden sind.

Nur kommt das gewünschte ergebniss nicht zustanden.

Wer kann mir etwas auf die Sprünge helfen?
Danke FL-Trooper
(28.02.2012 17:33 )F-Trooper schrieb: [ -> ]Mahlzeit zusammen,

stocke gerade beim einbinden einer DLL- Funktion und benötige etwas hilfe dabei.

Der Aufruf der Funktion lautet:
long WriteReq (long Handle, TParameter * pParameter)


TParameter * ist definiert:

Byte[256], WORD, BYTE, BYTE , BYTE, BYTE


Eingestellt habe ich den Parameter auf den Typ "An Typ anpassen", die Werte übergebe ich als Cluster wo die entsprechenden Typen eingebunden sind.

Natürlich nicht. Du kannst ein Fixed size array nicht als String buffer implementieren, da in einem C compiler solch ein Array embedded wird.

Es gibt zwei Möglichkeiten hier:

1) Man macht statt des fixed size arrays einen weiteren Cluster der entsprechend viele Elemente des korrekten Datentyps enthält.

2) Man berechnet die Länge des Clusters in Byte und initialisiert ein entsprechendes Byte Array das man dann als C Array Pointer an die Funktion übergibt. Danach muss man eventuel noch vor dem DLL Aufruf entsprechende Informationen in das Array schreiben (Input parameter) oder aber nach dem Aufruf herauskopieren (Ausgangsparameter).
Referenz-URLs