Zum Erstellen einer DLL in einer befehlsorientierten Programmiersprache können Sie einen Funktionsprototyp in LabVIEW erstellen und dann alle Details des Codes einfügen. Dabei garantiert die Verwendung von LabVIEW für die Generierung der Funktion, dass die Basissyntax des Codes in Ihrer DLL gültig ist. Die von Ihnen erstellte Prototyp-Quelldatei ist eine *.c-Datei mit C-Deklaration für weiterzuleitende Parameter.

Führen Sie folgende Schritte aus, um die Prototyp-Quelldatei myshared.c zu erstellen:

  1. Öffnen Sie ein neues, leeres VI und speichern Sie dieses als VI "Array-Mittelwert". Mit dieser Funktion wird der Mittelwert eines Arrays aus Werten berechnet.
  2. Fügen Sie einen Knoten zum Aufruf externer Bibliotheken in das Blockdiagramm ein.
  3. Klicken Sie mit der rechten Maustaste auf den Knoten zum Aufruf externer Bibliotheken und wählen Sie Konfigurieren aus dem Kontextmenü, um das Dialogfeld Aufruf externer Bibliotheken zu öffnen.
  4. Lassen Sie das Element Bibliotheksname oder Pfad leer.
Hinweis Verwenden Sie das Element Bibliotheksname oder Pfad zur Angabe der DLL, die vom Knoten zum Aufruf externer Bibliotheken aufgerufen wird.
  1. Nehmen Sie folgende allgemeine Einstellungen vor:
    1. Geben Sie avg_num in das Feld Funktionsname ein.
    2. Wählen Sie im Feld Aufrufkonventionen die Option C aus.
  2. Verwenden Sie für die Definition des Rückgabewerts folgende Spezifikationen:
    1. Öffnen Sie die Registerkarte Parameter im Dialogfeld Aufruf externer Bibliotheken.
    2. Ändern Sie im Feld Name den Standardnamen return type in den aussagekräftigeren Namen Fehler.
    3. Wählen Sie im Pulldown-Menü Typ die Option Numerisch aus.
    4. Wählen Sie die Option Vorzeichenbehafteter 32-Bit-Integer aus dem Pulldown-Menü Datentyp.
  3. Verwenden Sie für die Definition des a-Parameters folgende Spezifikationen:
    1. Klicken Sie auf die Schaltfläche Parameter hinzufügen rechts neben der Parameterliste.
    2. Ersetzen Sie den Standardnamen arg1 im Feld Name durch a.
    3. Wählen Sie im Pulldown-Menü Typ die Option Array aus.
    4. Wählen Sie im Pulldown-Menü Datentyp die Option 4-Byte-Single aus.
    5. Wählen Sie im Pulldown-Menü Array-Format die Option Array-Datenzeiger aus.
  4. Verwenden Sie für die Definition des Größenparameters size folgende Spezifikationen:
    1. Klicken Sie auf die Schaltfläche Parameter hinzufügen rechts neben der Parameterliste.
    2. Ersetzen Sie den Standardnamen arg2 im Feld Name durch size.
    3. Wählen Sie im Pulldown-Menü Typ die Option Numerisch aus.
    4. Wählen Sie die Option Vorzeichenbehafteter 32-Bit-Integer aus dem Pulldown-Menü Datentyp.
    5. Wählen Sie im Pulldown-Menü Übergeben die Option Wert aus.
  5. Verwenden Sie für die Definition des Mittelwertparameters avg folgende Spezifikationen:
    1. Klicken Sie auf die Schaltfläche Parameter hinzufügen rechts neben der Parameterliste.
    2. Ersetzen Sie den Standardnamen arg3 im Feld Parameter durch avg.
    3. Wählen Sie im Pulldown-Menü Typ die Option Numerisch aus.
    4. Wählen Sie im Pulldown-Menü Datentyp die Option 4-Byte-Single aus.
    5. Wählen Sie im Pulldown-Menü Übergeben die Option Zeiger auf Wert aus.
  6. Prüfen Sie, ob der Rückgabewert und die drei Parameter im Feld Funktionsprototyp in der richtigen Reihenfolge angezeigt werden, d. h.: int32_t avg_num(float *a, int32_t size, float *avg);
Hinweis Die im Feld Funktionsprototyp angezeigte Syntax ist prinzipiell korrekt. Allerdings ist die *.c-Datei, die vom Knoten zum Aufruf externer Bibliotheken erzeugt wurde genauer, da der erste Parameter als "float a[]" angegeben wird.
  1. Klicken Sie auf OK, um Ihre Einstellungen zu speichern und das Dialogfeld zu schließen.
  2. Das Symbol des Knotens zum Aufruf externer Bibliotheken wird nun entsprechend Ihrer vorgenommenen Einstellungen angezeigt.
  3. Klicken Sie mit der rechten Maustaste auf das Symbol und wählen Sie C-Datei erstellen aus dem Kontextmenü.
  4. Speichern Sie die Datei unter dem Namen myshared.c.
Hinweis In diesem Beispiel verwenden Sie eine *.c-Quelldatei. Wenn Sie mit C++ Bibliotheken arbeiten, ändern Sie die Erweiterung der Quelldatei in *.cpp.

Vermeiden von Namensergänzungen in C++

Um eine Plattformabhängigkeit in exportierten Funktionsnamen zu vermeiden, verwenden Sie den Befehl extern "C"{} in Ihrer Header-Datei (vgl. folgendes Beispiel).

extern "C" { int32_t MyDLLFunction(int32_t nInput, uint32_t nOutput, void *arg1); }

int32_t MyDLLFunction(int32_t nInput, uint32_t nOutput, void *arg1)

{

/* Fügen Sie den Code hier ein. */

}

Hinweis Wenn Sie in C++ die Funktionsänderung deaktivieren, kann der Compiler keine polymorphen Versionen der Funktion erstellen.

Nach Fertigstellung des Funktionsprototyps folgt die Fertigstellung der *.c-Datei.