C++ Linux中Win32消息泵的等价物是什么?

C++ Linux中Win32消息泵的等价物是什么?,c++,linux,C++,Linux,在Windows中,要获取系统消息(例如游戏),大致可以这样做: MSG msg; while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } 我以前从未在Linux上进行过开发(目前我在MintV17上),所以我不确定是否会有类似的版本(如果有的话)。我在这方面做了一些自我研究,但没有找到太多帮助,很可能是因为我不知道这些概

在Windows中,要获取系统消息(例如游戏),大致可以这样做:

MSG msg;
while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
   TranslateMessage(&msg);
   DispatchMessage(&msg);
}

我以前从未在Linux上进行过开发(目前我在MintV17上),所以我不确定是否会有类似的版本(如果有的话)。我在这方面做了一些自我研究,但没有找到太多帮助,很可能是因为我不知道这些概念的合适linux术语。

没有任何内在的(即内置在操作系统中)像这样的东西。如果您有,例如X11,您有一个类似的消息循环,您可以在其中接收和发送消息。通常情况下,您不会看到消息循环,就像在MS Windows下,人们很少在纯win32 API上编程一样。使用所谓的窗口工具包,如WxWidgets、Qt、GTK等


顺便说一句:你也可以在Linux上使用win32 API的实现,它被称为WINE。

我不确定你的问题是否有具体的答案,因为它似乎取决于你使用的窗口工具包。例如,Qt的答案将明显不同于用base Xlib书写的人(受虐狂)。@WhozCraig:或Wayland。或者直接帧缓冲区。不要期望Windows的每一个功能都有Linux的等效功能(反之亦然)。用新的眼光看待Linux。@BasileStarynkevitch我从来没有说过我期望Linux像Windows一样。我使用Windows作为参考来传达我试图在Linux中理解的概念