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 

Daten einer Struktur aus LV einer DLL übergeben



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!

03.05.2007, 11:06
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Daten einer Struktur aus LV einer DLL übergeben
' schrieb:ich möchte einen datensatz einer struktur übergeben. laut beschreibung der karte wird in der dll ein pointer *IN_WRITE_SPECIAL auf eine struktur übergeben. die struktur besitzt verschiedene formate (int, uchar, bool...usw). wie mache ich das, wenn ich in lv den datensatz übergeben möchte? mit der call library funktion kann ich ja einen zeiger auf die struktur nur in ein bestimmtes format übergeben. es kommt doch bestimmt sehr häufig vor das man karten auf dieser weise konfiguriert; datensatz aus lv einer struktur übergiebt.
Jawohl, alles klar. So würde es jeder haben wollen (die Datenübergabe mein ich).

Zitat:gibt es dafür lösungen?
Nein, bisher nicht. Mir ist zumindest keine bekannt, die ohne Tricks genau das macht.

Das Problem ist der Pointer an sich. In einer Datenflußsteuerung gibt es keine expliziten Pointer. Warum sich da also beim DLL-Knoten Arbeit machen? Schön wäre, wenn man einfach ein Cluster anschließen könnte und im Knoten sagen "Pointer auf Daten". Das geht aber nicht.

Lösung:
Einen Stream (= String) generieren, anschließen und "PChar, Zeiger auf Daten" wählen. Im Prinzip müsstes du alle Daten des Clusters per flatten to string hardcore-typ-konvertieren und hintereinander in einen String schreiben. Dann hast du genau das, was die DLL erwartet. Ob du mit flatten to string einen String erzeugst oder die Daten in ein Array of int8 konvertierst ist egal. Hauptsache es kommt ein Stream heraus, also ein zusammenhängender Datenbereich, auf dessen Anfang ein Pointer zeigen kann.

Zitat:noch ein verständnis problem: wenn ich daten in format bool habe, wäre doch die adressierung z.b. 4.0, 4.1
Nein.
Der Typ Bool ist je nach Programmiersprache int8 oder int32. In LV int32. Das mit den Bitpositionen geht zwar auch, dann ist es aber kein expliziter Bool. Der Typ Bool wird wie eine normale Int-Zahl gespeichert. Lediglich der Wertebereich ist anders. Bool kennt nur zwei Werte: "Null" und "ungleich Null" (wobei "ungleich Null" praktischerweise, aber auch nur in den Fällen einer Zuweisung, mit Eins gleichzusetzen ist)

Zitat:also könnte man doch die daten in bool auch als char formatieren und die zahl 1 oder 0 übergeben?
Genau so wird es gehandhabt.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Daten einer Struktur aus LV einer DLL übergeben - IchSelbst - 03.05.2007 11:06

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problem bei Aufruf einer dll swoc 5 3.304 08.09.2022 17:01
Letzter Beitrag: Martin.Henz
  Fehlercode 1097 beim Aufrufen einer C++ DLL Dr. Nuke 11 6.392 22.07.2022 22:39
Letzter Beitrag: Martin.Henz
  Struktur mit Zeiger auf weitere Struktur an DLL übergeben Wheeliemaster 2 7.535 27.05.2015 08:40
Letzter Beitrag: Wheeliemaster
  statische Klassen einer dll .Net C# in LabView ansprechen Programmierknecht 2 6.279 25.06.2013 12:01
Letzter Beitrag: rolfk
  Cluster der Array enthält als Ausgabe-Parameter einer dll SchwindelInside 4 7.111 07.12.2012 12:51
Letzter Beitrag: SchwindelInside
  Keine Funktionen in einer Geräterhersteller-.dll ansprechbar LäbViju 4 6.563 30.11.2011 15:15
Letzter Beitrag: LäbViju

Gehe zu: