Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Exception in einer Delphi dll sorgt für den Absturz von Excel (https://www.delphipraxis.net/177711-exception-einer-delphi-dll-sorgt-fuer-den-absturz-von-excel.html)

v2afrank 22. Nov 2013 13:01

Exception in einer Delphi dll sorgt für den Absturz von Excel
 
Hallo,
ich habe eine Delphi Dll geschrieben, die ich in Excel nutze. So weit funktioniert auch alles richtig. Wenn aber die Dll einen Exception erzeugt stürzt Excel gnadenlos ab.
Die Funktion kommuniziert hier über eine serielle Schnittstelle und in Visual Basic habe ich folgendes gemacht:

On Error GoTo Error_erkannt
If OpenPort("Com5")Then
MsgBox ("Port offen")
else
MsgBox ("Port nicht offen")
end if

Error_erkannt:
MsgBox ("Error erkannt")
Resume Next
End Sub

Führe ich das mit meiner vorhandenen Com1 aus funktioniert alles richtig. Bei der nicht vorhandenen Schnittstelle Com5 kommt ein Windowsdialog dass Excel abgestürzt ist. Die Ursache ist dabei dass meine Dll eine EComNotFound Exception wirft.
Ich habe jetzt in meine Dll ein Exception Handling eingebaut so dass es kein Problem ist. Aber wie könnte ich den Excel davon überzeugen meine Exception im ErrorHandler zu behandeln ?
In dem Delphi Programm mache ich ein try Except rum und gut ist es. Was mach ich in Excel ?

himitsu 22. Nov 2013 14:05

AW: Exception in einer Delphi dll sorgt für den Absturz von Excel
 
Wenn Exceptions nicht abgefangen werden (z.B. Try-Except) und bis zur understen Ebene durchrauschen, dann wird eine Anwendung nunmal beendet.

Wenn Excel keine Exceptions von den Plugins abfängt, dann wirst du das machen müssen, wenn du dieses Verhalten ändern willst.

v2afrank 25. Nov 2013 06:07

AW: Exception in einer Delphi dll sorgt für den Absturz von Excel
 
Das habe ich ja auch gemacht. Und wie oben beschrieben funktioniert es ja auch. Die Frage war ob es vielleicht dich einen Weg gibt dass Excel die Exceptions abfängt


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz