LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Kann eine Initialisierungsfunktion in einer DLL im Speicher gehalten werden?



ralfw wrote:

Hallo Felix,

ich verwende "Call Libary Function Node" und ich bekomme nur eine 0 (Fehler) oder 1 (OK) von der DLL-Funktion zurück. Bei der Funktion Initialisierung wird die verwendete Com Schnittstelle in eine globale Variable geschrieben. Die anderen Funktionen greifen anschließend auf diese globale Variable zu. In LabVIEW bekomme ich von allen DLL-Funktionen eine 0 zurück und bei der EXE-Anwendung immer eine 1, und das Gerät startet bzw. stoppt.

Ich verstehe nicht, dass es bei der EXE-Anwendung funktioniert und in LabVIEW nicht.

Gruss, Ralf


Und wie bestimmt die Initialisierungsfunktion denn welchen COM Port verwendet werden muss? Ich denke mal dass es da schief läuft und danach alles andere natürlich auch nicht laufen kann.
 
Rolf Kalbermatter
Rolf Kalbermatter
My Blog
0 Kudos
Message 11 of 14
(702 Views)

Die Initialiserungfunktion greift auf eine ini-Datei zu und holt sich hieraus ihre Daten. Die ini-Datei habe ich schon in verschiedene Ordner kopiert, da ich auch dachte, dass diese Datei nicht von LabView gefunden wird. 

Bei der EXE-Anwendung muss die ini-Datei im selben Verzeichnis liegen wie die Anwendung, damit es läuft. Wenn die ini-Datei im Unterordner "data" liegt, in welchem auch die dll liegt, läuft es nicht mehr. Wenn die dll aus dem Unterordner "data" entfernt und in das Verzeichnis der EXE-Anwendung gelegt wird funktioniert es auch.

Gruss, Ralf

0 Kudos
Message 12 of 14
(697 Views)


ralfw wrote:

Die Initialiserungfunktion greift auf eine ini-Datei zu und holt sich hieraus ihre Daten. Die ini-Datei habe ich schon in verschiedene Ordner kopiert, da ich auch dachte, dass diese Datei nicht von LabView gefunden wird. 

Bei der EXE-Anwendung muss die ini-Datei im selben Verzeichnis liegen wie die Anwendung, damit es läuft. Wenn die ini-Datei im Unterordner "data" liegt, in welchem auch die dll liegt, läuft es nicht mehr. Wenn die dll aus dem Unterordner "data" entfernt und in das Verzeichnis der EXE-Anwendung gelegt wird funktioniert es auch.

Gruss, Ralf



Wenn Du in der LabVIEW Entwicklungsumgebung arbeitest, ist das Executable LabVIEW.EXE und sollte die INI Datei wohl auch dort angelegt sein. Aber das Ganze ist schon ziemlich "krumm". Warum so kompliziert und nicht einfach die nötigen Parameter direkt an die Funktion geben?
 
Rolf Kalbermatter


Message Edited by rolfk on 11-14-2007 04:47 PM
Rolf Kalbermatter
My Blog
0 Kudos
Message 13 of 14
(687 Views)
Hallo Rolf,
 
vielen Dank, für Deine Antwort!!
Es stimmt, die ini-Datei muss bei der LabVIEW.EXE liegen. Klingt jetzt auch logisch.
 
Die Parameter direkt an die Funktion in LabVIEW zu übergeben, habe ich auch schon dem Entwickler vorgeschlagen.
Vielleicht kann ich Ihn jetzt überzeugen.
Danke, nochmals.
 
 
Gruss, Ralf
0 Kudos
Message 14 of 14
(678 Views)