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-Aufruf ohne Halt



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!

28.03.2012, 19:17 (Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2012 19:19 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: DLL-Aufruf ohne Halt
(28.03.2012 10:10 )ofahed schrieb:  auf ni.com steht folgendes:

„Nutzen alle DLLs dieselbe Version der LabVIEW Run-Time Engine und das Laden der DLLs geschieht dynamisch, empfiehlt National Instruments, dass Sie die LabVIEW Run-Time Engine dynamisch durch Laden der Datei lvrt.dll laden, bevor Sie eine der in LabVIEW erstellten DLLs laden. Ein Laden der LabVIEW Run-Time Engine vor dem Laden der DLLs verringert Overhead, indem die Run-Time Engine am Laden und Entladen gehindert wird, wenn die DLLs vom Speicher ge- und entladen werden.“

Original-Link: http://zone.ni.com/devzone/cda/tut/p/id/8364

Leider zur "LVRT.dll" konnte ich keinerlei Infos noch die Headerfile finden. Die Funktionen sind zwar ersichtlich, aber die Inputs/Outputs nicht Sad. Vielleicht mag dieses auch der falsche Ansatz sein.

Die Bemerkung zur lvrt.dll wenn man mehrere LabVIEW DLLs verwendet ist zwar scön angedacht aber nicht gut durchgedacht. Denn das Problem ist gerade, die richtige DLL zu finden. lvrt.dll ist jeweils in einem versionsabhängigen Verzeichnis installiert, dessen Pfad man aber nicht hardwiren kann, da die Stelle wo die Runtimes installiert werden benützerdefinierbar ist. Die NI Art um das zu lösen, ist zur Zeit ein Registryeintrag der angibt wo die jeweilige Runtime installiert ist. Aber das ist zwar für alle bisher bestehende LabVIEW Versionen so, aber niemand kann garantieren, dass das in Zukunft so bleibt und wenn Du das in Deine Applikation so einbaust geht es hässlich verkehrt wenn NI das jemals ändert und Du dann auf diese LabVIEW Version upgraden willst.

Eine bessere Variante ist deshalb um eine Dummy DLL mit Dummy Funktion in der selben LabVIEW Version zu machen und diese durch eine Call Library Node im Hauptprogramm zu laden. Wenn das Hauptprogramm in den Speicher geladen wird, wird auch diese Dummy DLL in den Speicher geladen und die lokalisiert die LabVIEW Runtime DLL in der richtigen Weise für die aktuelle LabVIEW Version, in der die DLL gemacht wurde. Wenn Du dann alle anderen plugin DLLs in der selben LabVIEW Version erstellst, brauchen diese die lvrt.dll nicht mehr zu laden, was einiges and Ladezeit spart.

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 


Nachrichten in diesem Thema
DLL-Aufruf ohne Halt - Trinitatis - 27.03.2012, 10:41
RE: DLL-Aufruf ohne Halt - NWOmason - 27.03.2012, 10:44
RE: DLL-Aufruf ohne Halt - rolfk - 27.03.2012, 11:29
RE: DLL-Aufruf ohne Halt - Trinitatis - 27.03.2012, 18:06
RE: DLL-Aufruf ohne Halt - rolfk - 27.03.2012, 19:30
RE: DLL-Aufruf ohne Halt - ofahed - 28.03.2012, 10:10
RE: DLL-Aufruf ohne Halt - rolfk - 28.03.2012 19:17
RE: DLL-Aufruf ohne Halt - Trinitatis - 29.03.2012, 14:57
RE: DLL-Aufruf ohne Halt - ofahed - 29.03.2012, 15:43
RE: DLL-Aufruf ohne Halt - ofahed - 30.03.2012, 09:54
RE: DLL-Aufruf ohne Halt - rolfk - 02.04.2012, 08:37

Gehe zu: