[Haskell-cafe] Windows: how to perform cleanup actions when the console window closes
Joachim Durchholz
jo at durchholz.org
Fri Apr 6 08:46:09 UTC 2018
Am 06.04.2018 um 10:09 schrieb Peter Dedecker:
> Summary question and TLDR: how do I reliably perform cleanup actions in
> a Windows console program that is closed by the user by clicking the 'X'
> symbol in the window title bar?
You need to intercept the various events that may cause a console
windows to be closed; this is done via the Windows API call
SetConsoleCtrlHandler .
https://stackoverflow.com/a/30843219/6944068 gives an overview, API doc
is at
https://docs.microsoft.com/en-us/windows/console/setconsolectrlhandler
(you want to register a HandlerRoutine).
The default handler simply calls ExitProcess, bypassing all shutdown
activity of the runtime. That's why C++ guys complain that destructors
are not called.
I don't know how to register a Haskell function as a Windows callback,
that will have to be answered by somebody else.
HTH
Jo
More information about the Haskell-Cafe
mailing list