LabVIEWForum.de
externe Header-Files in DLL einbinden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: externe Header-Files in DLL einbinden (/Thread-externe-Header-Files-in-DLL-einbinden)



externe Header-Files in DLL einbinden - Honeygirl24 - 15.10.2008 14:50

Hallo,

wie binde ich externe Header wie z.B. stdlib.h oder time.h von Visual Studio (C-Programmierung) in DLLs ein?
Ich habe nämlich eine Funktion geschrieben, der die beiden genannten Bibliotheken braucht.
Diese Funtion kann ich aber nicht in LabVIEW als DLL einbinden, da die Header stdlib.h und time.h nicht bekannt sind?

Ich hoffe ich kann weiterhelfende Antworten kriegen.


Mit freundlichen Grüßen,

Yesim


externe Header-Files in DLL einbinden - TSC - 15.10.2008 14:54

Also bei mir ginge das über die Menüleiste des BD/FP:

Werkzeuge --> Importieren --> Shared Library (.dll)

LG
Torsten


externe Header-Files in DLL einbinden - Honeygirl24 - 15.10.2008 15:03

Ja schon eine Funktion kann man importieren. Das geht über diesen Assistenten die du gemeint hast.
Ich habe so ca. 15 Unterfunktionen meines Programmes, die ich mit importieren möchte.
So ca. 5 Funktionen wrappt er und den Rest erkennt er nicht.
LabVIEW braucht nämlich noch die Bibliothen von Visual Studio: stdlib.h und time.h

Auf dem Bild ist das Problem erkennbar...

vlg


externe Header-Files in DLL einbinden - jg - 15.10.2008 15:39

Verstehe ich richtig, du hast nochmals Funktion aus z.B. time.h in deine DLL eingebunden und als Aufruf exportiert?

Oder nein, der Screenshot impliziert, dass du einen LV nicht bekannten Datentyp übertragen willst.:hmm:Am besten selber von Hand machen, man kann auch Funktionenaufrufe ohne Assistenten implementieren, bei solch zusammengesetzten Dateitypen wird es halt in der Regel nicht ganz einfach.

Oder ist SYSTEMTIME "nur" eine U32/I32 Variable? Dann einfach so deklarieren.

Oder kopier dir aus der time.h die noch benötigten Definitionen in deine Header-Datei.

Oder: Kann man beim Import über den Assistenten nictht mehrere Pfade und Header-Dateien angeben? Dann musst du halt dazu mal die Dateien auf deinem Rechner suchen.

Gruß, Jens


externe Header-Files in DLL einbinden - IchSelbst - 15.10.2008 15:45

' schrieb:wie binde ich externe Header wie z.B. stdlib.h oder time.h von Visual Studio (C-Programmierung) in DLLs ein

Ich gehe davon aus, du hast eine DLL in C geschrieben, die auch fehlerfrei erstellt (also kompiliert) wurde. Damit erübrigt sich aber deine Frage: nämlich das Einbinden der Headerfiles in eine DLL.

Diese DLL willst du jetzt in LV verwenden. Der automatische Import verlangt jetzt aber diverse Headerfiles. Da diese Header-Files Systemfiles sind, findet sie der Importer nicht (davon gehe ich jetzt mal aus). Leider kann ich hier nicht weiterhelfen. Außer, und so mach ich das immer:

Hinweis:
Du musst nicht unbedingt den automatischen Import machen. DLLs bzw. deren Funktionen kann man auch manuell einbinden bzw. aufrufen.

[*guck*]
Da hat einer was geschrieben.

SYSTEMTIME dürfte eine double sein.


externe Header-Files in DLL einbinden - Honeygirl24 - 15.10.2008 15:50

' schrieb:Verstehe ich richtig, du hast nochmals Funktion aus z.B. time.h in deine DLL eingebunden und als Aufruf exportiert?

Oder nein, der Screenshot impliziert, dass du einen LV nicht bekannten Datentyp übertragen willst.:hmm:Am besten selber von Hand machen, man kann auch Funktionenaufrufe ohne Assistenten implementieren, bei solch zusammengesetzten Dateitypen wird es halt in der Regel nicht ganz einfach.

Oder ist SYSTEMTIME "nur" eine U32/I32 Variable? Dann einfach so deklarieren.

Oder kopier dir aus der time.h die noch benötigten Definitionen in deine Header-Datei.

Oder: Kann man beim Import über den Assistenten nictht mehrere Pfade und Header-Dateien angeben? Dann musst du halt dazu mal die Dateien auf deinem Rechner suchen.

Gruß, Jens



Ich habe DLL-Funktionen geschrieben der auf die beiden Bibliotheken zugreift. Wie auf dem Bild zu sehen ist, kann LabVIEW auf die zwei Biblioteken vielleicht sogar noch auf mehrere nicht zugreifen.

Das ich die Defintionen aus den Bibliotheken entnehmen und in meineder Header kopieren muss, weiß ich. Die Frage ist halt nur welche Stellen ich brauche??
Ich bräuchte unbedingt <stdlib.h> und die ist einbisschen kompliziert aufgebaut.

Bei diesem Assistenten kann ich komischerweise nur einen Pfad zu meiner Header-Datei angeben...


externe Header-Files in DLL einbinden - Honeygirl24 - 15.10.2008 15:58

ich werde es mal ohne den Assistenten probieren...

vielen Dank für die Antworten...

vlg


externe Header-Files in DLL einbinden - jg - 15.10.2008 21:24

Offtopic

Bitte Forenregeln beachten (Punkt 10). Cross-Postings sollten mitgeteilt werden. Danke.

Gruß, Jens