我正在尝试使用Boost.Asio' object_handle
等待来自控制台的输入:
int main()
{
using namespace boost::asio;
io_service io;
windows::object_handle in(io);
in.assign(::GetStdHandle(STD_INPUT_HANDLE));
in.wait();
io.run();
return 0;
}
如果我从终端运行它,这是有效的,但是当我尝试使用Visual Studio调试它时,它会跳过wait()
。发生了什么事?
答案 0 :(得分:1)
Windows控制台应用程序可以创建自己的控制台,也可以附加到现有控制台(例如父命令shell)。这可能是造成差异的原因。
您可以通过start cmd /c myprog
与``start / b cmd / c myprog`之类的内容来影响控制台分配,或者您可以明确地创建控制台
具有背景和API的MSDN文章位于: