LabView 3.1: Erstellen DLL in C mit Dev-C + + und LabView nennen

Hallo, ich bin dabei, ein einfaches Beispiel für eine einfache Möglichkeit, entdeckt DLL (Dynamic Link Libraries) in C zu erstellen und dann in der Lage, in LabView rufen zu schreiben, ist das Beispiel ein Pop von "Hallo Welt". Mehr Mühe ist für mich eine DLL zu erstellen (weil das einzige, was gegeben wird direkt in Maschinencode kompiliert Bibliotheken fixiert), um eine C-Funktion in LabView nennen, da diese einfach mit dem Aufruf externer Bibliotheken Knoten VI getan.

Auf den National Instruments sind drei Seiten, wie man einen Anruf zu tätigen, erstellen Sie eine C-Datei und erstellen Sie die DLL, machte ich die ersten beiden Schritte, die dritte aber benötigt das Programm Microsft Visual C + + 6.0, die ich habe, so noch zu bringen, die Schritte zu tun, lasse ich die Seite hier in der Zwischenzeit.

Dennoch kann ich Ihnen die Erstellung Ihrer eigenen Regeln für Bibliotheken und laufen, aber ich hoffe euch gefällt dieses Beispiel, um diese ganze Frage der DLL zu verstehen. Ich denke, es gibt Anleitungen, wie Sie DLL mit Dev machen, so behaupte nicht, dass dies eines ist, auch, weil ich nicht lesen, es entweder noch und so dass ich denke ich habe Probleme beim Kompilieren meiner eigenen Codes. C-Header. H. Def. Können Sie mir einen anderen Kommentar auf einen Link, um zur Schaffung DLL in C / C + + leicht aus jedem Programm und noch einige mehr, wenn LabView viel besser erklärt.

  • Schritt 1: Haben Dev-C + + erstellen und DLL installiert

Das Beispiel, das ich gesetzt ist Version 4.9.9.2 können Sie sehen, was verfügbar ist hier .

Um eine DLL-Datei-> name-> Projekt erstellen

Wählen Sie DLL, wählen Sie Sprache in C und setzen Sie einen Projektnamen wie HelloDll. Sie müssen das Projekt zwei Dateien automatisch dllmain.cy verlassen dll.h. Wenn für ausgewählte C + + aus diesen beiden arichivos aber ohne das Beispiel der Hallo Welt.

. Archiv C (ich habe nicht ersetzt oder die erste Zeile):

/ * Ersetzen Sie "dll.h" mit dem Namen Ihres Header * /
# Include "dll.h"
# Include
# Include stdio.h
Stdlib.h

DLLImport nichtig HelloWorld ()
{
MessageBox (0, "Hallo Welt von DLL \ n", "Hallo", MB_ICONINFORMATION);
}

APIENTRY BOOL DllMain (HINSTANCE hInst / * Bibliothek Instanz-Handle. * /,
DWORD Grund / * Grund wird diese Funktion aufgerufen wird. * /
Reserviert LPVOID / * Nicht verwendet. * /)
{
Schalter (Grund)
{
Fall DLL_PROCESS_ATTACH:
zu brechen;

DLL_PROCESS_DETACH Fall:
zu brechen;

DLL_THREAD_ATTACH Fall:
zu brechen;

Fall DLL_THREAD_DETACH:
zu brechen;
}

/ * Gibt bei Erfolg TRUE, im Fehlerfall FALSE * /
return TRUE;
}

. Der H:

# Ifndef _DLL_H_
# Definieren _DLL_H_

# Wenn BUILDING_DLL
# Definieren DLLImport __ declspec (dllexport)
# Else / * Nicht BUILDING_DLL * /
# Definieren DLLImport __ declspec (dllimport)
# Endif / * Nicht BUILDING_DLL * /

DLLImport nichtig HelloWorld (void);

# Endif / * _DLL_H_ * /

Das wars, jetzt brauchen Sie nicht, etwas zu schreiben, nur um zu laufen-> Übersetzen oder Strg + F9 oder das Symbol Farbe cudraditos oben links gehen und wir die DLL generiert. Vielleicht fragt er Sie, um das Projekt zu halten. Dev und die generierten Dateien. C. H, die DLL im selben Ordner oder wenn Sie Ihren Namen und Projekt-> Projekt Optionen-> Bau Sie sie ändern können gespeichert werden.

  • Schritt 2: Erstellen Sie das VI

Sie nehmen ein neues VI, das Blockdiagramm zu gehen, und in den Aufruf externer Bibliotheken Knoten vi, kann in conectivity-> Libraries & Executables zu finden. Und dies, es ist so einfach, aber gut für die Arbeit RUN better'll in einer Struktur im Gesicht zu setzen, wenn True, ein Button-gesteuerter boolean, und alle innerhalb einer Schleife Schleife, die kontrolliert werden kann auch mit Stopp die gleiche Taste.

  • Schritt 3: Knoten zum Aufruf externer Bibliotheken füllen

Es wird zweimal in der sechsten oder zweite Schaltfläche Set gegeben:

- In der Bibliothek oder Pfad den Pfad zu der DLL gesetzt

- Abhängig von HelloWorld und es wird sie schreiben (aber es geht schlecht, glaube ich)

- Aufrufkonventionen in C wir

- Parameter Leere, die wir selbst geschrieben (also nichts zurück)

- Typ void.

Und dass es, unten ist die Form der Funktion void HelloWorld (void); Wenn es nicht eine Funktion des Typs VI Rückkehr nichts so, wie Sie Ein-oder Ausgänge anschließen kann verändern würde.

Es ist vorbei geführte und Glück.

Blogger Beitrag Facebook WordPress E-Mail Aktie
PDF Printer    Artikel versenden als PDF-Datei   

17 Kommentare zu "LabView 3.1: Erstellen DLL in C mit Dev-C + + und LabView Anruf"

  1. yelinna sagt:

    Hallo
    Ich tue ihnen die DLLs mit TurboExploer http://www.turboexplorer.com/ , die frei ist, aber wiegt 200 MB. Sie können auch mit den freien Compiler Borland bietet (der 5,5) zu tun.

    Grüße!

  2. Cristina sagt:

    ich danke Ihnen sehr! Ich war wirklich nützlich.

  3. Cesar Jimenez sagt:

    Hallo, dass eine solche!

    Ich möchte eine Canon Power Shot G9 cmaara zu verbinden und das Bild durch ein Fenster von LabVIEW, anscheinend brauche ich einige DLL-Dateien für diese Art von intefaces .... Können Sie mir helfen oder mir ein paar Tipps.

    Cesar Jimenez Calvillo.

  4. weeberp sagt:

    Hallo Cäsar.
    Das erste, was ich sehe, ist leichter wird Ihre Kamera musste es als Webcam Software oder Plug in "My Computer" als Webcam zu sehen, Wenn dem so ist sicher, Sie können die Postleitzahl verwenden sehen? Labview Vision-0.5: Code einfache USB-Kamera
    und der Index gibt den Namen der Kamera ausgewählt werden.
    Wenn nicht, sucht keine Software oder nicht funktioniert das USB-Kabel (welches sicherlich gut verbindet) einen generischen Treiber, die als Webcam oder ein Programm, um Fotos direkt von der Kamera importieren dienen wird ... Ich weiß es nicht, den Fall ist, dass, wenn Sie Video über den PC mit ihr gewisse sehen, die in der Liste aufgeführt.
    Ich glaube nicht, dass es leichter zu finden (viel weniger zu tun) eine DLL, die eine Funktion, die das Bild Sequenz, die als Video wirkt ruft enthält. Wenn Sie feststellen, wie Sie durch den Aufruf der Funktion Knoten (herauszufinden, welche Art von Daten müssen Sie die Funktion aufrufen, oder Sie zurück, wenn Array, wenn Array-Zeiger, etc ..., um den Anruf zu definieren). Wissen

  5. Uyuni Kenjin Joe sagt:

    Schönes neues, wie die Benutzung der Bibliothek mit der gleichen dev mit einem Co lengauje C + +

  6. weeberp sagt:

    Nun, wie jeder Bibliothek, setzen # include-Bibliothek (zwischen Dreieck und Zitate auf der Grundlage der Speicherort der Datei, wenn die Standard-Ordner oder auch nicht) und schon, rufen Sie Ihre Funktion im Programm.
    Außerdem habe ich festgestellt, dass nur die Umsetzung. C vor der Funktion, die wir exportieren wollen, wenn wir die Funktionen definieren zunächst, das Schlüsselwort __ declspec (dllexport) ist bereits öffentliche Funktion, dann gegeben, um die Schaltfläche, um DLL-Programm erstellen wir sind utlizando für die Kompilierung. Dieses Schlüsselwort kann etwas unterschiedlich sein Ich denke, von einem Programm zum nächsten, aber Google ist schnell.

  7. Ray sagt:

    Hey hey ich tun kann, ein Programm-Generator und verwenden Sie es wie Sie in LabVIEW 6.1 beschreiben? Ich habe ein Programm in LabVIEW zu tun, aber ich finde es komplizierter, ich gewohnt bin, immer die C-Sprache

    Würde es sehr begrüßen mich nicht in Frage!
    Vielen Dank im Voraus!

  8. weeberp sagt:

    Sie können ein beliebiges Programm zu DLL machen, wenn Sie wissen, und was Sie tun können. Um zu beweisen, ob ich öffentliche Funktionen, wie ich das kleine Programm benötigten Abhängigkeiten Walker Betrieb genommen.
    Und wenn in LabVIEW 6.1 das gleiche tun kann, um eine DLL-Aufruf, ich glaube, es verändert die Art und Weise Sie tun, und der Ort seit der Version 7, aber Sie haben die Call Function Node Libray gleichermaßen. Vermeidet auch die Code-Interface-Knoten (CIN), die auch dazu dient, um Code auszuführen, sondern die Tatsache, dass so sehr ich gelesen habe ich nicht enterder wie es funktioniert.
    Denken Sie auch daran, dass man C-Code oder Sprache auf die gleiche Weise verwenden lässt strukturiert Knotenstruktur, konnte aber nicht hier abstellen enthält oder Funktionsaufrufe ... Und mit MathScrpt Knoten MATLAB-Sprache, aber dafür ich denke, wir müssen die LabView, die eine vollständige umfasst ...
    Also hier ist ein Handbuch in englischer Sprache zu externen Code in LabVIEW 6.0 und 6.1 ich anrufen, können wir den Knoten, wie Sie schon gesagt, aber in einem längeren, auch der Erstellung der dll von Anfang an ...
    http://www.ni.com/pdf/manuals/370109a.pdf

  9. Martin sagt:

    Ich könnte Ihnen erklären, ein wenig besser, als ich von C + +-Sprache, um LabVIEW gehen kann?

  10. weeberp sagt:

    Pass passieren nicht bestehen, können Sie Code hinzufügen, wird hinzugefügt.
    - Wenn es funktioniert, oder springt, oder etwas ungewöhnlichen Strukturen nur dann, wenn .. else .. für ... dann Formel-Node.
    - Wenn sich Funktionen und ein besser ausgearbeitetes Programm erstellt eine DLL und rufen Sie es mit Call Function Node Libray (die Helfer Tools »Import» Shared Library (DLL) kommt in handliches.).
    Code Interface Node weiß nicht, wie es verwendet wird, ist hier ein Beispiel: Beispiel für CIN mit LabVIEW und MS Visual C + + 5.0 .
    Externer Code für LabVIEW - CIN / DLL - Ausgangspunkt
    -. MathScript-Knoten MATLAB-Code Mein Büro, müssen Sie MATLAB haben.
    - Wollen Sie mehr C? Ich schätze, pasate zu LabWindows CVI.

  11. Federico sagt:

    Hallo eXite wollte wissen, ob die Möglichkeit einer anders herum, zu der ich ist, dass wenn ich bekommen kann, was ich in Labview tun, um C. meine Frage ist, ist dass, was ich in Labview tun kann ich nicht verwenden es in einer Mikro-

  12. weeberp sagt:

    Nun, die Frage habe ich mir mehrmals getan, aber was ich bisher im Anschluss an die Linie der FPGA versammelt ist, dass ich nicht denken.
    Um ein FPGA planen bei der Programmierung mit LabView und alles gegeben, um eine Datei zu kompilieren, um VHDL oder eine, die die FPGA akzeptiert (so einfach wie für den NXT) zu konvertieren, sondern ist nur gültig für 4 oder 5 Modelle und FPGA Das Modul kostet viel Geld. Ich denke, für die Mikro-Version von ARM ¿? Ich erinnere mich nicht das gleiche tun.
    So viel wie können Sie sich einen boolean definiert, Cluster ... in C. dh wenn Sie einen Cluster (z. B. mit mehr Dinge und kompliziert) zu einem Knoten zum Aufruf externer Bibliotheken (zuerst müssen Sie in gehen und in den Parametern wie Art Adpat Typ) Sie geben auf die zweite Schaltfläche, um die Optionen anzuzeigen haben sie verbinden VIs und treffen Sie erstellen. C-Datei. Nun, ich sage dir nur den Vorsprung mit einem Datei-Header. C, um Ihre gesamte Code zu füllen.
    Da besteht immer die Möglichkeit von LabView CVI, aber dies ist, wie die Programmierung in C (nicht optisch) und ruft LabVIEW von Bibliotheken zur Schnittstelle Tasten SubVI.

  13. Fabian sagt:

    Hallo,
    Ich bin Neuling in DLL-Probleme, aber ich frage mich, ob im Hinblick auf die MEX-Dateien, habe ich verstanden haben, sind ähnlich der DLL, kann ich sie auch in LabVIEW. Das heißt, ich habe ein Code C q ist komplex und hat in Matlab als MEX-Dateien verwendet, und ich verwende es in LabVIEW. Nicht, wenn möglich, oder wenn ich besser konvertieren diesen Code, um eine C-DLL mit den Methoden, die Sie vorgeschlagen haben.

  14. weeberp sagt:

    Denn bis jetzt noch nie etwas gelesen über DLL-Dateien wie Matlab MEX genannt. aber wenn man NI.com mit den Schlüsselwörtern "MEX" hat mich die folgenden:

    * VI ​​mex mit NI LabVIEW Math Interface Toolkit LabVIEW-VIs Aufruf von The MathWorks Inc. MATLAB ® Software-Umgebung

    * Hier Ich denke, das macht Verbindung zwischen Simulink und LabVIEW NI LabVIEW Simulation Interface Toolkit

    So verwenden Sie die mex in LabView hat noch nichts so schnell und verließ Ich ging nie auf zu lesen, um mit LabVIEW-Bibliotheken verbinden, aber natürlich hatte ich noch nie gegangen sonst, oder von der normalen AutoCAD-Dateien ... Also, wenn Sie die C kann kompilieren Jedes Programm und tun Dll ist eine Lösung.
    *

  15. Fernando_H sagt:

    Gute Zeit danach, die es schafft, schaffen die DLL in LabVIEW aufgerufen werden, egal, welchen Compiler Sie verwenden, öffnet sie eine Welt der Möglichkeiten, sondern auch sehen, eine Welt von Schwierigkeiten, vor allem wenn das, was wir tun, ist mehr als "Hallo Welt". Ich habe schwer zu bedienen DLL aus künstlichen neurunales Networking-Bibliotheken ist für den Einsatz in LabVIEW Arbeitsstunden erstellt.
    Das erste Problem, Datentypen, wenn Sie die DLL-Bibliotheken als Parameter komplexe Datentypen übergeben müssen als große Strukturen C + +, die Aufgabe ein bisschen peinlich ist, um ein wenig mit diesen Hindernissen umgehen, erstellen Sie Link-Funktionen in C + +, können Daten verarbeiten Strukturen C + + und LabVIEW machen sie essbar.
    Zweites Problem, Speicherverwaltung, manchmal, besonders wenn man mit dem Programmieren beginnen, neigen Sie dazu, zu denken ", wenn Sie zusammengestellt haben, liegt daran, dass dies gut," aber wenn Sie eine Schleife in LabVIEW, wo eine Funktion aufgerufen wird mehrere tausend Mal pro Sekunde , untergebracht in einer dll und wenn diese Funktion nicht selbst eine ordnungsgemäße Verwendung der Speicherkarte können Sie einfach zurück, das System wird instabil. Es ist so, nachdem sie glücklich zu sehen, wie die RNA perfekt gearbeitet, ich in wenigen Sekunden fiel decepcioncuando sah alles und hörte, wie der Computer wurde langsam. Ich überprüfte den gesamten Code C + +, Destruktoren Konstruktoren, sogenannte new und delete, fand aber keine Probleme.

  16. weeberp sagt:

    Ich stimme Ihnen zu, die Wahrheit, wie es wird nicht die Daten in eine DLL in LabView, wenn Sie mit der Größe, verbringen will für etwas anderes ... plötzlich macht die LabVIEW-Crack und schließt plötzlich. Und langsam klar, zumindest in 8.6.1.

Lassen Sie eine Antwort

(erforderlich)

(erforderlich)

CAPTCHA Image
Bild neuladen
*