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!
Guten Abend,
Hoffe das Thema passt in meine gewählte Kategorie.
stehe vor einem Problem, welches ich bisher nicht lösen konnte.
Ich habe eine DLL, die aus drei Werten mir etwas ausrechnet.
Diese DLL habe ich versucht in Labview einzubinden, funktioniert leider nicht (Funktionen werden angezeigt, jedoch sobald daten an die DLL übergeben werden kommt ein Fehler der im Zusammenhang mit der DLL liegt).
Mit dieser DLL kann ich jedoch ohne Probleme in Excel berechnungen durchführen.
Nun folgendes habe ich vor:
-> Labview soll Daten an Excel weiterleiten
-> Excel soll diese Daten auswerten (mithilfe der DLL)
-> Labview soll das Ergebnis auslesen
Es soll aber kein Excel zu sehen sein, es soll im Hintergrund geöffnet und evtl. geschlossen werden.
(25.04.2012 19:38 )muah schrieb: Ich habe eine DLL, die aus drei Werten mir etwas ausrechnet.
Diese DLL habe ich versucht in Labview einzubinden, funktioniert leider nicht (Funktionen werden angezeigt, jedoch sobald daten an die DLL übergeben werden kommt ein Fehler der im Zusammenhang mit der DLL liegt).
Wenn du die DLL selbst geschrieben hast würde ich versuchen diese zu debuggen. Es ist doch leichter den direkten Weg zu nehmen, als der (bitte das 'denken lesen' und 'posten' ignorieren) zu folgen
leider hab nicht ich die dll geschrieben, diese dll enthält komplexe berechnungen beruhend auf einigen vielen Literaturwerten.
Der direkte Weg wäre mir auch viel lieber aber leider klappt es nicht anders, hab schon Tagelang versucht die dll einzubinden nach recherche des Fehlermeldung (Error 1097) sehe ich leider keinen anderen Weg.
Soweit ich weiss wurde die dll noch mit Fortran geschrieben.
Bedanke mich für eure Hilfe.
Für andere Lösungsvorschläge bin ich offen.
Errorcode 1097 bedeutet "nur", dass ein Ausnahmefehler bei Aufruf der DLL aufgetreten ist.
Die Ursache dafür kann vielfältig sein.
Für genauere Aussagen müssten wir die Definition der Funktion kennen, die du aufrufen willst.
Alternativ würde es sich anbieten, eine "Wrapper-DLL" in C zu schreiben, die deine DLL-Aufrufe kapselt.
Der Umweg über Excel ist IMHO sehr kompliziert.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(26.04.2012 20:36 )jg schrieb: Errorcode 1097 bedeutet "nur", dass ein Ausnahmefehler bei Aufruf der DLL aufgetreten ist.
Die Ursache dafür kann vielfältig sein.
Für genauere Aussagen müssten wir die Definition der Funktion kennen, die du aufrufen willst.
Alternativ würde es sich anbieten, eine "Wrapper-DLL" in C zu schreiben, die deine DLL-Aufrufe kapselt.
Der Umweg über Excel ist IMHO sehr kompliziert.
Gruß, Jens
Hallo,
als Ergänzung:
Error 1097 kann ebenfalls auftreten, wenn die Calling Convention (stdcall(WINAPI) bzw C) nicht korrekt eingestellt wurde.
Auf einem LV-Anwendertreffen kam die Aussage seitens NI, dass ab LV2009 die LV-interne Überprüfung auf eben diese Calling Convention aus Performance-Gründen abgestellt wurde.
Gruß
Ralf
Anzeige
27.04.2012, 19:59 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2012 20:01 von rolfk.)
leider hab nicht ich die dll geschrieben, diese dll enthält komplexe berechnungen beruhend auf einigen vielen Literaturwerten.
Der direkte Weg wäre mir auch viel lieber aber leider klappt es nicht anders, hab schon Tagelang versucht die dll einzubinden nach recherche des Fehlermeldung (Error 1097) sehe ich leider keinen anderen Weg.
Soweit ich weiss wurde die dll noch mit Fortran geschrieben.
Bedanke mich für eure Hilfe.
Für andere Lösungsvorschläge bin ich offen.
Also wenn die DLL mit VBA in Excel ansprechbar ist, dann muss das mit der Call Library Node in LabVIEW auch gehen. LabVIEW hat im Vergleich viel mehr Möglichkeiten dan VBA. Warum error 1097 kommt hat einfach damit zu tun, dass Du die Call Library Node nicht korrekt konfiguriert hast. Was die korrekte Konfiguration ist, lässt sich aber nur sagen wenn man die Funktionsbeschreibung inklusiv Aufrufsdeklaration kennt. Manchmal ist die Aufrufsdeklaration alleine schon genügend, zusammen mit etwas Erfahrung auf dem Gebiet vom Aufrufen von C Funktionen in C. Aber oft sind diese Deklarationen alleine nicht aussagekräftig genug da sie nur Informationen beinhalten die für den C Compiler notwendig sind. Das ist aber meist nicht genug um zu wissen wie man eine solche Funktion in einem Programm wirklich aufrufen muss.