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 

Header nicht LV Kompatibel?



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!

26.04.2015, 07:29 (Dieser Beitrag wurde zuletzt bearbeitet: 26.04.2015 10:20 von hansi9990.)
Beitrag #1

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
Header nicht LV Kompatibel?
Hallo zusammen

Zunächt erst mal bitte verzeiht meine Unwissenheit denn ich bin nicht ganz so tief im erstellen von DLL Projekten in LV zudem kommt hinzu das ich von C++ soviel Ahnung habe wie ein Eskimo vom Heu machen Wink es wäre dennoch schön wenn mir hier jemand zumindes ein kleines bisschen helfen könnte Smile
Mein Problem ist das ich eine DLL besitze (nicht direkt ich Wink und diese in LV 2014 importieren möchte, eine Header Datei dazu habe ich auch jedoch scheint diese nicht zu passen denn nach dem Import habe ich nur verschieden Funktionen mit je einem leeren Eingangs- und Ausgangscluster, auch wenn ich keine Ahnung habe vermute ich einfach das in der Headerdatei die Typdefinitionen fehlen oder zumindest nicht in der korrekten Schreibweise eingetragen sind.
Ich habe mal ein Kopie der Headerdatei hier angehängt, scheinbar werden Dateien mit einer .h Endung nicht angenommen datum habe ich sie in .txt umbenannt.
Kann mir jemand helfen oder sagen ob es mit diese Datei überhaupt möglich ist die dazugehörige DLL in LV zu importieren?

Mercy


Angehängte Datei(en)
0.0 .txt  SebaHID_copy.txt (Größe: 10,75 KB / Downloads: 334)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.04.2015, 09:58 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2015 09:59 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Header nicht LV Kompatibel?
(26.04.2015 07:29 )hansi9990 schrieb:  Hallo zusammen

Zunächt erst mal bitte verzeiht meine Unwissenheit denn ich bin nicht ganz so tief im erstellen von DLL Projekten in LV zudem kommt hinzu das ich von C++ soviel Ahnung habe wie ein Eskimo vom Heu machen Wink es wäre dennoch schön wenn mir hier jemand zumindes ein kleines bisschen helfen könnte Smile
Mein Problem ist das ich eine DLL besitze (nicht direkt ich Wink und diese in LV 2014 importieren möchte, eine Header Datei dazu habe ich auch jedoch scheint diese nicht zu passen denn nach dem Import habe ich nur verschieden Funktionen mit je einem leeren Eingangs- und Ausgangscluster, auch wenn ich keine Ahnung habe vermute ich einfach das in der Headerdatei die Typdefinitionen fehlen oder zumindest nicht in der korrekten Schreibweise eingetragen sind.
Ich habe mal ein Kopie der Headerdatei hier angehängt, scheinbar werden Dateien mit einer .h Endung nicht angenommen datum habe ich sie in .txt umbenannt.
Kann mir jemand helfen oder sagen ob es mit diese Datei überhaupt möglich ist die dazugehörige DLL in LV zu importieren?

Nicht möglich ist zuviel gesagt aber nicht einfach. Der Grund ist sogar zweifach. Erstens benützt dieser Header Definitionen des WinAPIs. Ohne den Pfad der Microsoft Windows SDK Headers in einer der extra Einstellungen hat er einfach nicht genug Informationen um diesen Header zu parsen. Allerdings sind die Windows SDK Headers so umfangreich dass er da meist früher oder später über allerlei bedingte Definitionen stolpert da Du auch einige Definitionen mitgeben musst die normal vom C Compiler automatisch definiert werden.

Daher ist es grundsätzlich einfacher um bei relativ einfachen Headern wie diesem die entsprechenden defines selber in das entsprechende Feld einzuführen.

Etwas in dieser Richtung:

#define HANDLE void*
#define BOOL int
#define UINT unsigned int
#define WORD unsigned short
#define DWORD unsigned long
#define BYTE unsigned char
#define OVERLAPPED void*
#define ULONG unsigned long
#define USHORT unsigned short
#define HDEVNOTIFY HANDLE

Das sollte glaube ich alle Datentypen im Header abdecken.

Extra Komplikation hier dürfte aber sein das HANDLE ja ein Pointer ist und der Size davon abhängt von der Bitness in LabVIEW. LabVIEW unterstützt zwar einen Pointer sized Datentyp in der Call Library Node als direkter Parameter aber nicht als native Datentype im Diagram. Wenn Du Deine Library sowohl für 32 Bit als auch 64 Bit LabVIEW machen willst musst Du die HANDLE und OVERLAPPED Elemente händisch auf jeweils einen 32 oder 64 Bit Integer einstellen und je nach Platform eine Call Library Node mit entsprechend verbundenem Cluster programmieren (Conditional Compile Structur).

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
27.04.2015, 19:17 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2015 19:18 von hansi9990.)
Beitrag #3

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Header nicht LV Kompatibel?
Meinst du das in etwa so wie im Anhang hier?
Würde das dann auch genügen wenn ich die DLL nur für 32Bit haben möchte?


Angehängte Datei(en)
0.0 .txt  SebaHID_copy2.txt (Größe: 11,01 KB / Downloads: 537)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2015, 09:59 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2015 10:00 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Header nicht LV Kompatibel?
(27.04.2015 19:17 )hansi9990 schrieb:  Meinst du das in etwa so wie im Anhang hier?
Würde das dann auch genügen wenn ich die DLL nur für 32Bit haben möchte?

Das ist eine Möglichkeit. Eigentlich hat der Import Library Wizard extra Einstellungselemente. In einem davon kannst Du auch extra defines festlegen, die beispielsweise normalerweise vom C Compiler festgelegt werden. Aber man kann das auch "missbrauchen" um einige Datentypen zu definieren die ansonsten in externen Headern festgelegt würden. Sofern Du nur die 32 Bit DLL ansprichst und dies von der 32 Bit Version von LabVIEW aus machst sollte das in etwa genügen.

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
28.04.2015, 18:01 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2015 18:02 von hansi9990.)
Beitrag #5

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Header nicht LV Kompatibel?
Hallo Rolf

Danke für die Informationen, leider funktioniert es nicht so wie ich es mir vorstelle, wenn ich es über die Header Datei mache dann hängt der Import Wizard bie "VI erzeugen: HID Close.vi", da steht er schon seit über einer Stunde, da ich mir nicht vorstellen kann das dies normal ist habe ich Labview jetzt über den Taskmanager abgewürgt, anders lies er sich nicht beenden . Wie man es direkt im Wizard definiert weiß ich nicht, da gibt es zwar eine Möglichkeit mit dem Präprozessor aber ich habe keinen Schimmer wie man die defines dort hinein bekommt und ob es dann funktioniert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2015, 19:38 (Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2015 19:41 von hansi9990.)
Beitrag #6

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Header nicht LV Kompatibel?
Hallo

Hat evtl. jemand eine Idee oder eine Vermutung warum sich der Import Wizzard aufhängt wenn ich den Header wie von Rolf empfohlen überarbeite?

PS: Ist schon seltsam, wenn man es mehrfach versucht und im Wizzard mal etwas vor und zurück springt dann wird die Erstellung durchgeführt, warum das so ist kann ich mir einfach nicht erklären.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DLL Import externe Struktur in Header bekommen hansi9990 15 24.689 30.09.2016 17:20
Letzter Beitrag: hansi9990
  .dll nicht LabView kompatibel? virtualmake 5 6.389 10.09.2013 14:49
Letzter Beitrag: virtualmake
  DLL ohne Header M@rRy 9 10.670 24.10.2011 08:49
Letzter Beitrag: M@rRy
  DLL einbinden ohne Header Datei ringfahrer 6 11.768 03.12.2009 16:22
Letzter Beitrag: jg
  externe Header-Files in DLL einbinden Honeygirl24 7 9.157 15.10.2008 21:24
Letzter Beitrag: jg

Gehe zu: