gpt4 book ai didi

winapi - 如何在 Windows CE 控制台应用程序中处理 Ctrl+C?

转载 作者:行者123 更新时间:2023-12-02 04:40:12 26 4
gpt4 key购买 nike

我需要在关闭应用程序之前进行一些清理,但是 SetConsoleCtrlHandler 似乎不适用于 Windows CE 控制台应用程序。

是否有其他方法可以在 Windows CE 6 中处理 Ctrl+C

最佳答案

根据 Microsoft 的文档,在 Windows CE 3.0 及更高版本上,使用 IOCTL_CONSOLE_SETCONTROLCHANDLER 控制代码调用的 DeviceIoControl 函数将在 Windows CE 上安装 Ctrl+C 处理程序。我自己还没有尝试过,但是像这样的东西“应该”有效:

DWORD ignore;
DeviceIoControl(
_fileno(stdout), // handle to the console
IOCTL_CONSOLE_SETCONTROLCHANDLER, // Tell Win CE to set the console Ctrl+C handler
(LPVOID)consoleHandler, // pointer to the signal handler
sizeof(consoleHandler), // size of the pointer
NULL, // output buffer not needed
0, // zero output buffer size
&ignore, // no data will be put into the output buffer so we don't need its size
NULL); // not an asynchronous operation - don't need to provide async info

其中 consoleHandler 当然是您的 Ctrl+C 处理程序。

文档:

需要 header :

  • Console.h
  • winbase.h(通常通过 windows.h 包含)。

关于winapi - 如何在 Windows CE 控制台应用程序中处理 Ctrl+C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com