[DllImport("kernel32.dll")]
static extern bool SetConsoleCtrlHandler(ControlEventHandler e, bool add);
我用它来捕获和管理控制台中断,特别是Ctrl. + C
它在Windows 7下使用.NET运行良好,
但是我希望在mono
上将其移至arch-linux
在运行它时(无论是在Windows上构建还是直接在带有xbuild的linux机器上构建)我得到
System.EntryPointNotFoundException: SetCtrlHandler
at (wrapper managed-to-native) rzs_slim.consoleControl:SetConsoleCtrlHandler (rzs_slim.ControlEventHandler, bool) //rzs_slim is the project, consoleControl the class
at [ctor of consoleControl]
at [Main]
如何在单声道中使用此调用本机代码?我能用单声道引用.dll吗?
修改:
实际上,由于这是一个控制台应用程序,我可以通过将我的清理函数订阅到Console.CancelKeyPress
- 事件