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 

Dieses Thema hat akzeptierte Lösungen:

Fehler 1097 beim Übergeben von Arrays



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!

12.09.2017, 17:56
Beitrag #1

Flemmy Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Oct 2013

2013
2013
DE

28359
Deutschland
Fehler 1097 beim Übergeben von Arrays
Moin,

Ich befasse mich gerade damit eine selbstgeschriebene DLL mit LabVIEW (2013) einzubinden.
Hintergrund des Ganzen ist, dass ich mir die einfache GUI Programmierung von LabVIEW zunutzen machen möchte um einige Funktionen zu testen, die ich anschließend jedoch in C bereitstelle. C++/Qt kommen aktuell aber nicht in Frage, da müsste ich mich erste einarbeiten.

Bei einfachen Funktionen funktioniert der Aufruf aus der DLL auch einwandfrei.
Code:
uint8_t add(uint8_t a, uint8_t b);
void mult(uint8_t a, uint8_t b, uint16_t *ret);

Problematisch wird es, wenn Arrays hinzukommen.
Was mein Code macht, ist einen Array gemäß einiger Parameter zu füllen:
Code:
void composeMsgTest(uint32_t a,
                    uint32_t b,
                    uint32_t c,
                    float    d,
                    uint8_t  *retData,
                    uint16_t *retLen);
Hier ist retData das Array (oder viel mehr der Pointer auf dessen erstes Element) und retLen dessen Länge.
Sobald ich diesen Code dann in eine DLL compiliere kommt es in LabVIEW zu Problemen, genauer dem Fehler 1097. Binde ich das

Zum Testen habe ich mir dann ein kleines C Programm geschrieben. Dieses läuft einwandfrei durch und gibt mir die erwarteten Daten aus.

Nach einigem rumprobieren habe ich nun festgestellt, dass ich mich bei den Arrays in LabVIEW zu doof anstelle.
In dem Beispielen habe ich dann die "DW Test Copy.vi" gefunden. In der entsprechenden Header Datei der DLL wird der Array als
Code:
int arr[]
übergeben. Ändere ich meinen Code dahingehend tritt weiterhin der selbe Fehler auf.

Beim Aufruf der externen Bib stelle ich das entsprechende Parameter auf den Typ "Array", den Datentyp "uint8_t" und das Format auf "Array Datenzeiger". Der angezeigt Funtionsprototyp entspricht dabei dem, was in meiner Header Datei steht.

Anbei gibt es einmal die DLL und die Test Vi.

Ich wäre für Anregungen und Tipps im Umgang mit Arrays beim Aufruf von externen Bibs sehr dankbar.

Gruß
Flemmy


Angehängte Datei(en)
0.0 .dll  example_dll.dll (Größe: 12,02 KB / Downloads: 328)

13.0 .vi  dllTest.vi (Größe: 7,56 KB / Downloads: 314)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Fehler 1097 beim Übergeben von Arrays - Flemmy - 12.09.2017 17:56

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Fehlercode 1097 beim Aufrufen einer C++ DLL Dr. Nuke 11 4.005 22.07.2022 22:39
Letzter Beitrag: Martin.Henz
  Picoscope Err 1097 ares2013 10 10.264 26.12.2020 14:03
Letzter Beitrag: hansi9990
  Aufruf externe DLL Fehler 1097 Lars_Tragl 1 8.765 11.08.2016 16:13
Letzter Beitrag: Freddy
  Error 1097 katanad 2 10.798 15.06.2016 11:31
Letzter Beitrag: katanad
Exclamation Backgroundworker aus VB.NET DLL - Fehler beim Beenden Max92 0 9.222 03.11.2015 14:17
Letzter Beitrag: Max92
  DLL Fehler 1097 M.VI 1 5.970 02.12.2014 08:38
Letzter Beitrag: GerdW

Gehe zu: