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 

UUID als Datentyp für eine DLL erstellen



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.03.2012, 22:25 (Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2012 22:30 von rolfk.)
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: UUID als Datentyp für eine DLL erstellen
(03.03.2012 18:00 )jabami schrieb:  Hallo Rolf,

ich hab es jetzt 2 Wochen immer mal wieder versucht. Ich gebe auf. Ich bin mir mittlerweile sicher das LabView den GUID Datentyp in keinster Weise unterstützt, auch nicht durch die MoveBlock funktion. Ich glaube es liegt einfach daran, das eine GUID ein zusammengesetzter Datentyp ist und somit eben nicht nur einen Zeiger besitzt (so jedenfalls meine Laienhafte Vermutung). Das Problem ist wohl nur durch das Schreiben und implementieren einer Wrapper .dll zu lösen. Da ich aber so gut wie keine C# oder C++ Programmierkenntnisse besitze muss ich passen.

Dennoch Danke für die entgegengebrachte Hilfe,

Beste Grüße,
Jan

Ein GUID, zumindest in Windows C API Notation, ist ganz einfach eine C Struktur mit insgesamt 16 Bytes. Da ist nichts magisches dran und das geht mit LabVIEW absolut sicher. Das einzige Problem könnte sein, dass die Funktion diesen Buffer als Funktionsrückgabewert zurückgibt anstelle durch einen Parameter. Wo die Funktion diesen Buffer anlegt und wie lange sie ihn gültig hält ist ganz einfach ausserhalb der Kontrolle von LabVIEW, Das könnte ein statischer Buffer sein (einfach zu implementieren, wenig Chancen auf Fehler, aber problematisch wenn das API Multithreaded aufgerufen wird), ein dynamischer Speicherbereich, der einmal angelegt wird und bis zum ausladen der DLL bestehen bleibt (gleiche Vor- und Nachteile wie statischer Speicher aber komplizierter zum implementieren für den DLL Programmierer), oder ein dynamischer Speicherbereich der jedesmal angelegt wird (Laufzeitverzögerung durch das jeweilege Anlegen und initialisieren des Buffers und Speicherlecks wenn der Aufrufer der Funktion vergisst diesen Speicherbereich danach wieder freizugeben, aber dies ist die einzige multithreading safe Variante).

Es ist wahr dass selbst bei relativ trivialen Funktionen eine WrapperDLL oftmals Vorteile bietet da man das eigentliche API mittels C Syntax ansprechen kann und das LabVIEW API so gestalten kann dass es LabVIEW freundlich ist. Man muss dabei aber C verstehen und was man niemals vergessen sollte, um das Call Library node Interface wirklich benützen zu können ausser für triviale C Funktionen, ist diese Kenntnis effektiv ebenfalls nötig. Überspitzt gesagt ist die Call Library Node für jemanden der keine Wrapper DLL machen kann nicht das richtige Spielzeug!

Da Du immer nur Bilder der VIs angehängt hast musste ich mich darauf beschränken zu vermuten was Du falsch gemacht hast und konnte ich Dir nur allgemeine Hilfestellungen bieten. Ein Bild sagt mehr dann tausend Woirte ist zwar wahr, aber gerade im Fall der Call Library Node enthält es nur einen Bruchteil der relevanten Informationen. Denn die Parameterkonfiguration ist darin nur sehr grob ersichtlich aber die feineren Details bestimmen gerade hier ob es funktioniert, nichts tut oder ganz einfach kracht und LabVIEW mit einer allgemeinen Schutzverletzung zum Speicher rauswirft.

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: UUID als Datentyp für eine DLL erstellen - rolfk - 03.03.2012 22:25

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Variant Datentyp bei C++ dll BastiFantasti 1 5.593 10.02.2012 21:30
Letzter Beitrag: rolfk
  Erzeugte DLL hat geänderten Datentyp (uint32->int32) LabVIEWDompteur 4 6.554 14.10.2011 12:09
Letzter Beitrag: rolfk
  Datentyp HANDLE, PVOID weschi 7 11.112 12.06.2007 14:14
Letzter Beitrag: rolfk

Gehe zu: