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 

LV DLL in Visual Basic verwenden



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!

27.04.2011, 15:22
Beitrag #1

sm Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2011

2010
2010
EN


Deutschland
LV DLL in Visual Basic verwenden
Hallo zusammen,

ich habe folgendes Problem: Ich möchte aus meinem LabVIEW VI eine Shared Library (DLL) machen. Grundsätzlich funktioniert das auch mit Hilfe des Application Builder jedoch kann ich die DLLs nicht in Visual Studio 2008 Express einbinden (Projekt/Verweise einbinden). Hierbei kommt grundsätzlich folgender Fehler:

"Es konnte kein verweis auf /Pfad der DLL/ hinzugefügt werden. Stellen Sie sicher, dass auf die Datei zugegriffen werden kann und dass sie eine gültige Assembly oder COM-Komponente ist."

Hiermit kann ich jedoch nur wenig anfangen. Im Internet stehen hierzu zwar viele, jedoch meist mir nicht weiterhelfende Einträge.
Zunächst dachte ich, dass es an den Boolschen Variablen liegt, da diese in LV 1Byte groß sind und in VB 2Byte. Daran liegt es jedoch nicht da ich egal was für Variablen ich in die DLL setze, grundsätzlich o.g. Fehlermeldung erhalte.

Interessanterweise kann LV die selbst erstellte DLL nur manchmal mit Hilfe von "Tools/Import/Shared Library (.dll)" importieren! Manchmal bedeutet, wenn ich z.B. die Representation von Numerischen Eingabeelementen auf "Double" setze. Beim Erstellen der DLL habe ich mich an die Vorgaben von NI gehalten, die hier zu finden sind. Die DLL wurde mit LV2010 erstellt.

Grüße
SM
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.04.2011, 15:45
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: LV DLL in Visual Basic verwenden
LabVIEW DLLs sind ganz normale Funktions-DLLs, keine .Net Assemblies oder ActiveX COM componenten. Du kannst daher die DLL nicht einfach so durch den Visual Studio Wizard in Dein Project importieren lassen sondern musst das händisch machen. Wenn Du Visual C/C++ verwenden würdest, würde LabVIEW Dir einen entsprechenden Header bauen, aber bei einer Visual Basic Einbindung musst Du denke ich mal Dein eigenes include File bauen.

Stichwort: Unmanaged Code!!

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
03.05.2011, 08:02
Beitrag #3

sm Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2011

2010
2010
EN


Deutschland
RE: LV DLL in Visual Basic verwenden
Hallo zusammen,

erst einmal vielen Dank für deine Hilfe, rolfk.

Nun hätte ich noch eine weitere Frage, für die ich jedoch keinen neuen Thread aufmachen wollte.

Wie verhält es sich in DLLs mit While-Schleifen? Ich habe zum Testen ein kleines Programm mit einer While-Schleife geschrieben. Sobald ich das aus VB als DLL aufrufe, hängt sich das VB Programm auf. Liegt das an der While-Schleife? Kann man das irgendwie umgehen, außer den LV-Code umzubauen? Wenn nicht, würde das nämlich mein gesamtes Projekt über den Haufen werfen..

Vielen dank im voraus für eure Hilfe! Wink

Grüße
SM
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2011, 13:34
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: LV DLL in Visual Basic verwenden
(03.05.2011 08:02 )sm schrieb:  Hallo zusammen,

erst einmal vielen Dank für deine Hilfe, rolfk.

Nun hätte ich noch eine weitere Frage, für die ich jedoch keinen neuen Thread aufmachen wollte.

Wie verhält es sich in DLLs mit While-Schleifen? Ich habe zum Testen ein kleines Programm mit einer While-Schleife geschrieben. Sobald ich das aus VB als DLL aufrufe, hängt sich das VB Programm auf. Liegt das an der While-Schleife? Kann man das irgendwie umgehen, außer den LV-Code umzubauen? Wenn nicht, würde das nämlich mein gesamtes Projekt über den Haufen werfen..

Vielen dank im voraus für eure Hilfe! Wink

Solange Dein Programm im DLL Aufruf steckt ist der entsprechende Thread mit der DLL Ausführung beschäftigt und tut nichts anderes. Das heisst wenn Du in VB keinen eigenen Thread für den Aufruf der DLL anmachst ist der Programmhauptthread in der DLL und ist Dein VB Programm blockiert.

Frag mich jetzt nicht wie man in VB Threads macht. Eher gehe ich ins Kloster als dass ich mich mit VB auf mehr dann theoretischer Basis auseinandersetze Blink

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-Code in Visual Studio GladiatoreSardo 1 4.933 12.11.2012 10:41
Letzter Beitrag: GerdW
  DLL in Visual C++ 2010 programmieren tt-web 2 6.878 02.05.2010 12:17
Letzter Beitrag: tt-web
  DLL mit Visual Studio2008 debuggen Lars@LabVIEW 5 5.771 29.08.2009 07:58
Letzter Beitrag: rolfk
  Einbindung vom BASIC Programm zu LabVIEW Gin_1705 7 5.907 15.06.2009 10:19
Letzter Beitrag: Gin_1705
  Visual Basic DLL in LabVIEW einbinden jacket12 2 9.221 10.06.2008 09:54
Letzter Beitrag: jacket12

Gehe zu: