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 

Wrapper DLL zum dynamischen Laden



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!

17.04.2012, 10:44
Beitrag #1

b.p Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 197
Registriert seit: Oct 2010

2009-14
-
DE_EN


Sonstige
Wrapper DLL zum dynamischen Laden
Hallo,

ich habe eine Anwendung, bei der ich während der Runtime entscheide, welche DLL ich laden will. (Kompliziertere Geschichte, Gerätetreiber + SPS).

Klassisch würde ich den Aufrufknoten verwenden; mit dynamischen Laden - das funktioniert leider wegen einem Bug in diesem Fall nicht (Der Support ist dran, aber es sind sensible Daten). Deshalb wollte ich, wie klassisch vor LV 8.? (6?2?) eine Wrapper-DLL verwenden - einfach den Pfad übergeben ...

Ist natürlich nicht schwer zu schreiben, aber trotzdem wollte ich fragen, ob einer von euch zufällig noch so einen C/C++-Code rumliegen hat?

Danke,
Birgit
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.04.2012, 11:19
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Wrapper DLL zum dynamischen Laden
(17.04.2012 10:44 )b.p schrieb:  Hallo,

ich habe eine Anwendung, bei der ich während der Runtime entscheide, welche DLL ich laden will. (Kompliziertere Geschichte, Gerätetreiber + SPS).

Klassisch würde ich den Aufrufknoten verwenden; mit dynamischen Laden - das funktioniert leider wegen einem Bug in diesem Fall nicht (Der Support ist dran, aber es sind sensible Daten). Deshalb wollte ich, wie klassisch vor LV 8.? (6?2?) eine Wrapper-DLL verwenden - einfach den Pfad übergeben ...

Ist natürlich nicht schwer zu schreiben, aber trotzdem wollte ich fragen, ob einer von euch zufällig noch so einen C/C++-Code rumliegen hat?

Danke,
Birgit

Was für ein Bug in der Call Library Node?

Das mit der Wrapper DLL ist nur mit sinnvollem Aufwand zu tun wenn der Funktionsprototyp immer derselbe bleibt. Aber!!!

Um wieviele Funktionen geht es per DLL? Eine Variante bei nicht zu vielen Funktionen wäre um eine Funktionelle Globale Variable (FGV) per DLL zu erstellen, wo jede Funktion als eine Methode verfügbar ist. Dann lädtst Du die jeweilige FGV mit VI Server in den Speicher und rufst sie mit Call By Reference auf. Habe ich schon öfter für DLLs oder ActiveX Controls getan die manchmal nicht auf einem Computer vorhanden sein können. Wenn man das auf diese Weise dynamisch macht kann man die Komponente zu laden versuchen und wenn das fehlschlägt alle Funktionalität die davon Gebrauch macht einfach disablen ohne dass LabVIEW nicht gestartet werden kann, wenn die entsprechende Komponente nicht auf dem PC vorhanden ist.

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
17.04.2012, 12:06
Beitrag #3

b.p Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 197
Registriert seit: Oct 2010

2009-14
-
DE_EN


Sonstige
RE: Wrapper DLL zum dynamischen Laden
Hallo,

der Bug ist, dass beim Laden der dynamischen dlls in 2 bestimmten, kritischen Fällen ein Pfad falsch gelesen wird - und blöderweise kann ich nicht verschieben/umbenennen, weil wir ein Mehrkomponentensystem haben. Wir haben schon "alles" probiert, was einfach/sinnvoll war, und jetzt ist halt die Idee, dass wir den ganzen Aufruf in LV so umgehen.

Der Funktionsprototyp bleibt - zumindest in den Fällen, wo ich das einsetze - immer derselbe.

Die FGV-Variante gefällt mir (geht dann wohl auch schon in Richtung Action Engine) aber auch ganz gut - mal schauen.

Danke.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2012, 13:18
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Wrapper DLL zum dynamischen Laden
(17.04.2012 12:06 )b.p schrieb:  Hallo,

der Bug ist, dass beim Laden der dynamischen dlls in 2 bestimmten, kritischen Fällen ein Pfad falsch gelesen wird - und blöderweise kann ich nicht verschieben/umbenennen, weil wir ein Mehrkomponentensystem haben. Wir haben schon "alles" probiert, was einfach/sinnvoll war, und jetzt ist halt die Idee, dass wir den ganzen Aufruf in LV so umgehen.

Der Funktionsprototyp bleibt - zumindest in den Fällen, wo ich das einsetze - immer derselbe.

Die FGV-Variante gefällt mir (geht dann wohl auch schon in Richtung Action Engine) aber auch ganz gut - mal schauen.

Danke.

Ja im Prinzip ist es eine Action Engine, wenngleich in diesem Fall nicht unbedingt mit einer Loop mit Uninitialized Shift Register.

FGV == Action Engine sind eigentlich synonyme Begriffe für ein und dasselbe.

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
  LabView Wrapper - PostUserEvent aus externer DLL Stephan235 3 9.694 22.07.2015 13:28
Letzter Beitrag: rolfk
  DLL einbinden mittels Wrapper OXO 11 12.626 08.05.2013 10:27
Letzter Beitrag: OXO
  C# MAPI .NET WRAPPER DLL und Lotus Notes Totte 3 7.072 16.12.2011 09:15
Letzter Beitrag: Totte
  DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL Dimitri 24 23.744 02.07.2010 15:16
Letzter Beitrag: Dimitri
  Trinamic TMCM 610 über Wrapper.dll passimatze 2 5.184 17.06.2010 06:23
Letzter Beitrag: passimatze
  Trinamic TMCM-610 über Wrapper-dll ansteuern matzesl 14 16.753 14.11.2007 09:56
Letzter Beitrag: matzesl

Gehe zu: