15.10.2008, 14:50
Beitrag #1
|
Honeygirl24
LVF-Gelegenheitsschreiber
Beiträge: 169
Registriert seit: Jan 2008
8.5 , 8,6 , 2009, 2010
2007
de
90461
Deutschland
|
externe Header-Files in DLL einbinden
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
|
|
|
15.10.2008, 14:54
Beitrag #2
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
externe Header-Files in DLL einbinden
Also bei mir ginge das über die Menüleiste des BD/FP:
Werkzeuge --> Importieren --> Shared Library (.dll)
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
15.10.2008, 15:03
Beitrag #3
|
|
|
15.10.2008, 15:39
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
externe Header-Files in DLL einbinden
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
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
15.10.2008, 15:45
Beitrag #5
|
IchSelbst
LVF-Guru
Beiträge: 3.696
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
externe Header-Files in DLL einbinden
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
15.10.2008, 15:50
Beitrag #6
|
Honeygirl24
LVF-Gelegenheitsschreiber
Beiträge: 169
Registriert seit: Jan 2008
8.5 , 8,6 , 2009, 2010
2007
de
90461
Deutschland
|
externe Header-Files in DLL einbinden
' 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...
|
|
|
15.10.2008, 15:58
Beitrag #7
|
Honeygirl24
LVF-Gelegenheitsschreiber
Beiträge: 169
Registriert seit: Jan 2008
8.5 , 8,6 , 2009, 2010
2007
de
90461
Deutschland
|
externe Header-Files in DLL einbinden
ich werde es mal ohne den Assistenten probieren...
vielen Dank für die Antworten...
vlg
|
|
|
15.10.2008, 21:24
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
externe Header-Files in DLL einbinden
Bitte Forenregeln beachten (Punkt 10). Cross-Postings sollten mitgeteilt werden. Danke.
Gruß, 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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
| |