' 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