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 

dll wie wurde sie angebunden?



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!

19.05.2008, 16:12
Beitrag #1

Smarty Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Feb 2008

8.6
2008
de

83301
Deutschland
dll wie wurde sie angebunden?
Hallo LabVIEW User,
ich muss für mein Projekt eine dll einbinden! Nur habe ich unter LAbView nicht soviel Ahnung! also ich habe hier alle möglichen Beiträge gelesen und auch probiert nur versteh ich nicht warum nix geht!
Ich habe auch Beispiel Programme oder Vi´s wo diese dll schon eingebunden ist!
Aber wie finde ich heraus wie das gemacht wurde?? kann man das irgendwo sehen ????
Es sind viele Funktionen in dieser dll! zu jeder Funktion besteht sogar schon eine Vi Sammlung. Aber ich würde gern wissen wie diese dll eingebunden wurde???

Mir würde es sogar reichen (nicht zufriedenstellen!) wenn ich eine neue Version der schon implementierten dll statt der implementierten dll tauschen könnte?? geht das?

vielen Dank schon mal!!
mfg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.05.2008, 20:59
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
dll wie wurde sie angebunden?
Schon mal das Tutorial durchgearbeitet:

http://www.LabVIEWforum.de/DLL-einbindung-t5504.html

Generell: DLL-Einbindung gehört zum Fortgeschrittenen-Level unter LV. Je nach Art der Funktionsaufrufe kann das von einfach über extrem kompliziert bis zu unmöglich reichen. Und man sollte neben LV auch noch was von textbasierten Sprachen verstehen...

Auch in der Hilfe von LV steht doch so einiges. Such z.B man nach der "Call Library Function Node".

Dann gibt es da noch den Import Assistenten unter "Tools->Import->Shared Library". Der liefert teils sehr gute Ergebnisse, solange die Dateitypen in den Funktionen der DLL nicht zu kompliziert sind.

MfG, Jens

P.S.: Leider erzählt mir meine Kristallkugel nichts über deine dll, somit kann ich dir auch nichts über das Einbinden deiner dll erzählen.
Ach ja, und falls sich die Funktionsaufrufe nicht geändert haben, dann sollte es ohne große Probleme möglich sein, eine dll auszutauschen.

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.05.2008, 07:26
Beitrag #3

Smarty Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Feb 2008

8.6
2008
de

83301
Deutschland
dll wie wurde sie angebunden?
' schrieb:Schon mal das Tutorial durchgearbeitet:

http://www.LabVIEWforum.de/DLL-einbindung-t5504.html

Generell: DLL-Einbindung gehört zum Fortgeschrittenen-Level unter LV. Je nach Art der Funktionsaufrufe kann das von einfach über extrem kompliziert bis zu unmöglich reichen. Und man sollte neben LV auch noch was von textbasierten Sprachen verstehen...

Auch in der Hilfe von LV steht doch so einiges. Such z.B man nach der "Call Library Function Node".

Dann gibt es da noch den Import Assistenten unter "Tools->Import->Shared Library". Der liefert teils sehr gute Ergebnisse, solange die Dateitypen in den Funktionen der DLL nicht zu kompliziert sind.

MfG, Jens

P.S.: Leider erzählt mir meine Kristallkugel nichts über deine dll, somit kann ich dir auch nichts über das Einbinden deiner dll erzählen.
Ach ja, und falls sich die Funktionsaufrufe nicht geändert haben, dann sollte es ohne große Probleme möglich sein, eine dll auszutauschen.



Hallo Jens. Danke erstmal für deine Antwort.
Das tutorial habe ich auch durchgearbeitet ja. Danke.

Mir gefällt dein letzter Satz! Das man eine dll leicht austauschen kann!! das hört sich gut an.
Ich habe hier ein kleines Prog wo die dll eben schon drin ist! Sieht man wo die ist? wie sie genutzt wird?

und wie kann ich die eben austauschen?

die beigefügte dll ist z.B. eine neuere Version und das beigefügte Prog hat noch die alte Version intus!


Gruß Adam


Angehängte Datei(en)
Sonstige .zip  All.zip (Größe: 62,97 KB / Downloads: 207)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.05.2008, 08:08
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
dll wie wurde sie angebunden?
' schrieb:Das man eine dll leicht austauschen kann!!
Austauschen heißt eigentlich: Auf der Platte ersetzen.
Irgendwo auf der Festplatte muss die DLL, die von einem Programm verwendet wird, ja abgelegt sein. Und genau diese DLL wird duch eine andere respektive neue ersetzt. Aber: Der Name der DLL muss gleich bleiben - und deren Schnittstelle!

Ändert sich entweder der Name oder, was schlimmer ist, die Schnittstelle, dann muss das (LV-)Programm selbst angepasst werden.

Zitat:Ich habe hier ein kleines Prog wo die dll eben schon drin ist! Sieht man wo die ist? wie sie genutzt wird?
Es gibt einen sog. DLL-Knoten. Der ist die Schnittstelle von LV zur DLL. Der Knoten selbst ist nicht die DLL, eben nur die Schnittstelle.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.05.2008, 07:58
Beitrag #5

Smarty Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Feb 2008

8.6
2008
de

83301
Deutschland
dll wie wurde sie angebunden?
Hallo, OK also das mit dem Knoten habe ich jetzt verstanden! Ich habe es auch gefunden, wie sie angebunden ist! Ich verstehe es so und da bitte ich euch mich zu verbessern wenn ich falsch liege:
Ich habe eine .LLB Datei, in der alle Möglichen Befehle der .DLL als VI hinterlegt sind! Das bedeutet das ist doch meine Library. Wenn ich mir so ein VI (Befehl) näher ansehe, gibt es eben pro Befehl (VI) einen Knoten (siehe Bild) der eben die Schnittstelle zur Kommunikation mit der .DLL ist?
Was mich noch interessiert ist aber: in diesem Ordner wo die .LLB liegt liegt noch ein kleines Programm bei (.vi) und sonst nix! Muss dann diese DLL in dem Ordner liegen in dem ich arbeite? Weil ich beides nutzen kann und es wird nicht gejammert, das die DLL abginge? Oder sucht sich das Programm die DLL denn die liegt im übergeordneten Ordner? Oder hat sie einen Absoluten Pfad? wenn ja wo sehe ich diesen?

Danke euch allen für die tollen Antworten! Ich habe jetzt verstanden das eine DLL anzusprechen schon sehr tief in die Programmierung geht! Und da ich eh alle Befehle aus der DLL als VI´s habe muss ich nur noch wissen wie man diese sauber austauscht, deshalb diese Fragen mit den Ordnern und Pfaden.

Danke.

MFG


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.05.2008, 08:04
Beitrag #6

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
dll wie wurde sie angebunden?
Jetzt noch ein Doppelklick auf das Teil in deinem Bild und siehe da, ein Pfad.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.05.2008, 08:07
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
dll wie wurde sie angebunden?
' schrieb:Ich habe eine .LLB Datei, in der alle Möglichen Befehle der .DLL als VI hinterlegt sind! Das bedeutet das ist doch meine Library. Wenn ich mir so ein VI (Befehl) näher ansehe, gibt es eben pro Befehl (VI) einen Knoten (siehe Bild) der eben die Schnittstelle zur Kommunikation mit der .DLL ist?
Ja, dem kann ich in allen Punkten so zustimmen.

Zitat:Muss dann diese DLL in dem Ordner liegen in dem ich arbeite?
Nicht zwangsläufig.
Mach einen Doppelklick auf den DLL-Knoten. Dann siehst du in der ersten Maske ganz oben den DLL-Namen - möglicherweise zusammen mit dem Pfad, in dem die DLL liegt. Ist hier alles komplett angegeben, so findet die EXE die DLL sofort. Kann die Applikation die DLL nicht sofort finden, suchst sie in diversen Pfaden. Wird die DLL gar nicht gefunden, kommt eine Fehlermeldung.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.05.2008, 09:20
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
dll wie wurde sie angebunden?
' schrieb:Mach einen Doppelklick auf den DLL-Knoten. Dann siehst du in der ersten Maske ganz oben den DLL-Namen - möglicherweise zusammen mit dem Pfad, in dem die DLL liegt. Ist hier alles komplett angegeben, so findet die EXE die DLL sofort. Kann die Applikation die DLL nicht sofort finden, suchst sie in diversen Pfaden. Wird die DLL gar nicht gefunden, kommt eine Fehlermeldung.

Stimmt alles. Hier zur Verdeutlichung:

Wenn ein kompletter Pfad angegeben ist versucht LabVIEW die DLL von diesem Path zu laden. Die Windows Funktion die das macht produziert einen Fehler wenn die DLL dort nicht vorhanden ist.

Wenn LabVIEW von dieser Windows Funktion einen Fehler zurückbekommt oder der Pfad ohnehin nur relativ ist, nimmt LabVIEW den DLL-Namen alleine und versucht es so noch einmal.

Windows sucht dann in folgenden Stellen und in dieser Reihenfolge:

1) Im gemappten Prozessspeicher, wenn die DLL schon durch ein anderes Teil des Prozesses geladen wurde (oder es ist eine System DLL wie etwa kernel32.dll) ist sie bereits im Speicher und braucht nicht nochmals geladen zu werden.

2) Im Verzeichnis wo das Executable liegt das den aktuellen Prozess gestartet hat (LabVIEW.exe im LabVIEW Entwicklungssystem oder Dein App.exe für eine kompilierte Applikation).

3) Im Windows Verzeichnis

4) Im System Verzeichnis von Windows

5) In einem der Pfade die in der PATH Umgebungsvariable aufgelistet sind.

Wenn die DLL dann noch immer nicht gefunden wird liefert Windows einen Fehler zurück und LabVIEW behandelt das VI als unausführbar (Run-Pfeil ist unterbrochen).

Rolf Kalbermatter

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 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DLL einbinden die für NEtFramework 4.0 geschrieben wurde Erdberquark 1 5.734 06.02.2012 11:38
Letzter Beitrag: markus321
  Abfrage ob ein neues USB Gerät angeschlossen wurde xtro 3 4.699 09.08.2007 12:38
Letzter Beitrag: eg
  DLLs aus bestimmtem Ordner verwenden nachdem .exe erstellt wurde astraios 7 7.390 21.07.2007 08:11
Letzter Beitrag: rolfk

Gehe zu: