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 einbinden in CVI funktioniert nicht



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!

21.04.2008, 08:16 (Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2008 08:23 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.308
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
DLL einbinden in CVI funktioniert nicht
' schrieb:Hallo,

ich versuche eine Dll-Datei in mein LabWindowsprogramm einzufügen.
Ich habe über Edit->Add files to project die entsprechende Library Datei ins Projekt eingefügt und auch das *.h File mit den Funktionen (siehe Anhang).

Leider reagiert mein Programm kein bißchen auf die eingefügten Dateien. Wenn ich das ganze Zeug aus dem Projektordner lösche, kommt keine Fehlermeldung, nichts. Irgendwie reagiert CVI nicht auf meine *.dll.

Ich hatte vorher ein Beispielprogramm eines NI-Tutorials ausprobiert und dort funktionierte die einbindung der *.dll, siehe http://zone.ni.com/devzone/cda/epd/p/id/2770.
Auch die anderen Hilfeseiten von NI zu dem Thema konnten mir bisher nicht helfen.

Jedoch ist mir aufgefallen das mein *.h File eine komplett andere Dateistruktur hat als die Datei in dem Beispielprogramm. Es kommten Datentypen wie HANDLE, DWORD, BOOL, etc. vor.

Ich weiß gilt:
#define DWORD unsigned long
#define BYTE unsigned char
#define WORD unsigned short
#define LONG signed long
#define BOOL long

Daher meine zwei Fragen:
1. Wie binde ich den HANDLE Datentyp ein?
2. Welche Funktionen muss ich benutzten das meine DLL aufgerufen wird und nicht nur als unverlinkte Datei im Projektordner verstaubt.

Vielen Dank im Voraus an Alle!!!!

Ich denke Du hast hier ein seriöses Missverständnis. Alleine dadurch dass Du die Importlibrary und das Headerfile einer DLL in ein Projekt einfügst passiert noch absolut nichts. Du wirst auch ein Programm schreiben müssen dass die Funktionen dieser DLL sinnvoll aufruft. Denn wenn Du das getan hättest würdest Du Compiler- und Linkerfehler bekommen, wenn Du diese Files wieder aus dem Projekt entfernst.

Ein DLL ist ganz einfach eine Funktionslibrary, und die Importlibrary ist der Kleber der Dir die Verwendung dieser DLL in einem Programm erleichtert. Genau gleich wie das Einfügen eines Instrumentendrivers in ein Projekt diese Instrument noch nicht anspricht geht das auch mit DLLs. Irgendwo wirst Du ein eigenes C File machen müssen mit einer main() oder WinMain() Funktion die dann irgendwie und in sinnvoller Art die Funktionen dieser DLL aufruft.

Um den Datentyp Handle zu benützen brauchst Du nichts weiter zu tun als ein #include "<dein header file>" am Anfang Deines C Files.

Danach wirst Du wohl irgenwie ein Programm schreiben müssen in dem Du die Funktionen MPUSBGetDeviceCount(), MPUSBOpen(), MPUSBRead(), MPUSBWrite(), und MPUSBClose() aufrufst. Wie diese Funktionen aufgerufen werden müssen wirst Du der Dokumentation zu Deinem Gerät entnehmen müssen. Ein C Code Example dabei wäre natürlich auch noch sehr nett, aber das können wir für Dich nicht tun. Das ist eindeutig Aufgabe des Geräteherstellers.

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 


Nachrichten in diesem Thema
DLL einbinden in CVI funktioniert nicht - rolfk - 21.04.2008 08:16

Gehe zu: