2011-09-29 40 views

回答

2

如果您正在尋找Windows上Boost.Asio的終止處理,您可以查看示例here

總之,您需要處理系統中的贏取事件和呼叫停止。

BOOL WINAPI console_ctrl_handler(DWORD ctrl_type) 
{ 
    switch (ctrl_type) 
    { 
    case CTRL_C_EVENT: 
    case CTRL_BREAK_EVENT: 
    case CTRL_CLOSE_EVENT: 
    case CTRL_SHUTDOWN_EVENT: 
     console_ctrl_function(); 
     return TRUE; 
    default: 
     return FALSE; 
    } 
} 

它使用一個函數對象:

boost::function0<void> console_ctrl_function; 

,你需要綁定到系統的關機/停止程序。

// Set console control handler to allow server to be stopped. 
console_ctrl_function = boost::bind(&your_system::shutdown, &s); 
SetConsoleCtrlHandler(console_ctrl_handler, TRUE); 
+0

這很糟糕,但謝謝。我最終這樣做了...... – unixman83

相關問題