Hallo,
danke Marc, ich bin zwischenzeitlich weiter gekommen und habe den Fehlerstatus an eine Case-Struktur angeschlossen. Wobei ich einfach mit dem Verbindungswerkzeug ein Abzweig zum Case-Eingang gemacht habe. LV scheint dann automatisch die Signal-Leitung aus dem Cluster zu nehmen.
Leider funktioniert es nicht. Wenn ein Fehler von meiner DLL zurückgeliefert wird, gibt es folgende Probleme:
1. Wenn ich das blinken des Debuggers richtig interpretiere, werden die Ausgabeparameter weiter propagiert, bevor der Rückgabewert (der die Fehlernummer enthält) ausgewertet wird.
2. Das Status-Signal im Fehlercluster wird nicht gesetzt. Oder setzt die Dialogausgabe des Fehlers den Fehlerstatus zurück? Wenn ja, wie kann man das verhindern?
3. Da der Fehlerstatus nicht gesetzt wird, wird der 2. DLL-Aufruf ausgeführt. Danach tritt ein weiteres Problem auf: LabView behauptet in ein Fehlerdialog, dass der zurückgegebene Fehler nicht definiert sei. Das kann eigentlich nicht sein, weil ich die Fehlerbehandlung bei dem beiden Aufrufen gleich aufgebaut habe. Allerdings fällt mir auf, dass beim 2. „General Error Handler.vi“ am Fehlercode-Eingang ein rotes Dreieck ist. Was hat das zu bedeuten?
Ich habe ein Bild der vi und das Projekt angehängt. Für die enthaltene DLL habe ich ein Virencheck bei Virustotal.com durchgeführt und das Protokoll als PDF beigelegt. Hier die MD5 Prüfsumme:
8133252f5978f6f4658baa4e92d6c7b0 *pei2c.dll
Vielen Dank im Vorraus.
Bernd
LabView.zip (Größe: 475,57 KB / Downloads: 278)