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!
das HANDLE und der zeiger des Statusregisters machen mir keine probleme... ich habe lediglich probleme mit dem pointer auf die struktur. die funktion gibt mir doch den pointer aus. aber wie komme ich mit dem pointer an meine daten? ich hatte vorerst angenommen das ich den gesamten datensatz in ein array ausgegeben bekomme und mir dann in LV die benötigten daten heraussuche. blos in der struktur befinden sich ja daten unterschiedlichen typs. Kann mir da jemand helfen?
' schrieb:ich habe lediglich probleme mit dem pointer auf die struktur. die funktion gibt mir doch den pointer aus. aber wie komme ich mit dem pointer an meine daten?
in dem du die Call Library Node verwendest und bei der Konfiguration angibst, dass ein Zeiger übergeben wird. Die Call Library Node holt dann die Daten nach LabVIEW ...
mehr sag ich dazu nicht, weil in diesem Forum seit Monaten der Thread zum Thema "DLL Tutorial" aktiv ist
hallo... vielen dank für deine antwort! jedoch hat das mir nicht weitergeholfen. das ich das mit der call library function machen muss, wusste ich vorher. ich habe nur das (verständnis) problem mit der struktur. wenn ich einen pointer übergeben bekomme, wie navigiere ich den pointer in LV?
ich möchte z.B. jetzt die daten des Aufsteckfilters auslesen. in der textlichen programmierung würde man schreiben: struct_OUT_READ_KONFIG.Aufsteckfilter[...]. Wie mache ich das in LV, wie navigiere ich den Pointer und hole mir die Daten die ich benötige?
Gruß Dennis
' schrieb:Wie mache ich das in LV, wie navigiere ich den Pointer
gar nicht. LV kennt keine Pointer und keine Pointer Arithmetik.
' schrieb:hole mir die Daten die ich benötige?
die einzige Chance die du hast, ist, die Rückgabe-Struktur in einen Cluster zu pressen und dann mit Unbundle zu arbeiten. Wenn du Strings im struct verwendest ist das allerding so eine Sache, die müssen ebenfalls *richtig* übergeben werden. Wenn du Zugriff auf den Quellcode der DLL hast, dann hast du die Chance die extcode.h einzubinden und in der DLL die Daten auf LV Format umzubiegen. Wenn nicht, kann es sein, dass du Pech hast und gar nicht an die Daten rankommst.
vielen dank nochmal... habe das problem gelöst. es lag nicht am knoten, sondern es fehlte eine funktion zum öffnen und schließen der karte. das problem hat sich also geklärt...
jedoch jetzt habe ich ein nächstes problem: wie oben beschrieben kommen aus der struktur zeichen (char), die als zahl im array stehen. wie kann ich jetzt die zahlen umcodieren, dass ich sie als ASCII code lesen kann? gibt es in LV eine funktion dafür? habe die hilfe durchsucht, bin aber nicht fündig geworden...
da gibt es bei den Umwandlungsfunktionen (entweder unter Numerisch oder String) die Funktionen "String to Byte Array" und "Byte Array to String". Probier die doch mal aus. Die wandeln auf jeden Fall korrekt nach ASCII.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:gar nicht. LV kennt keine Pointer und keine Pointer Arithmetik.
die einzige Chance die du hast, ist, die Rückgabe-Struktur in einen Cluster zu pressen und dann mit Unbundle zu arbeiten. Wenn du Strings im struct verwendest ist das allerding so eine Sache, die müssen ebenfalls *richtig* übergeben werden. Wenn du Zugriff auf den Quellcode der DLL hast, dann hast du die Chance die extcode.h einzubinden und in der DLL die Daten auf LV Format umzubiegen. Wenn nicht, kann es sein, dass du Pech hast und gar nicht an die Daten rankommst.
Eine andere Möglichkeit die zwar meist schwieriger scheint aber meiner Meinung nach in manchen Fällen einfacher ist, ist das ganze als ein Array of Bytes zu behandeln und die verschiedenen Informationen in LabVIEW aus dem Array herauszupicken.