Когда мое окно X11 получает событие DestroyNotify, я хотел бы закрыть свое приложение, однако мой процесс завершается с 1 вместо 0. Когда я запускаю его в режиме отладки, я получаю следующую ошибку: p>
X connection to :1 broken (explicit kill or server shutdown).
Код воспроизведения:
#include
#include
int main()
{
Display* display = XOpenDisplay(nullptr);
Window window;
XVisualInfo visual_info;
long visual_mask = VisualScreenMask;
int number_of_visuals;
XVisualInfo v_info_template = {};
v_info_template.screen = DefaultScreen(display);
XVisualInfo *vi_list = XGetVisualInfo(display, visual_mask, &v_info_template, &number_of_visuals);
visual_info = vi_list[0];
XFree(vi_list);
Colormap colormap = XCreateColormap(display, RootWindow(display, visual_info.screen), visual_info.visual, AllocNone);
XSetWindowAttributes window_attributes = {};
window_attributes.colormap = colormap;
window_attributes.background_pixel = 0xFFFFFFFF;
window_attributes.border_pixel = 0;
window_attributes.event_mask = KeyPressMask | KeyReleaseMask | StructureNotifyMask | ExposureMask;
unsigned long value_mask = CWBorderPixel | CWColormap | CWEventMask;
window = XCreateWindow(display, RootWindow(display, visual_info.screen), 100, 100, 500, 500, 0, visual_info.depth, InputOutput, visual_info.visual, value_mask, &window_attributes);
XMapWindow(display, window);
XSync(display, False);
XEvent* event = nullptr;
while(!event || event->type != DestroyNotify) {
XCheckWindowEvent(display, window, VisibilityChangeMask, event);
}
XUnmapWindow(display, window);
XDestroyWindow(display, window);
XCloseDisplay(display);
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... turn-value
Приложение C++, использующее выход Xlib с ненулевым возвращаемым значением ⇐ C++
Программы на C++. Форум разработчиков
1734307492
Anonymous
Когда мое окно X11 получает событие DestroyNotify, я хотел бы закрыть свое приложение, однако мой процесс завершается с 1 вместо 0. Когда я запускаю его в режиме отладки, я получаю следующую ошибку: p>
X connection to :1 broken (explicit kill or server shutdown).
Код воспроизведения:
#include
#include
int main()
{
Display* display = XOpenDisplay(nullptr);
Window window;
XVisualInfo visual_info;
long visual_mask = VisualScreenMask;
int number_of_visuals;
XVisualInfo v_info_template = {};
v_info_template.screen = DefaultScreen(display);
XVisualInfo *vi_list = XGetVisualInfo(display, visual_mask, &v_info_template, &number_of_visuals);
visual_info = vi_list[0];
XFree(vi_list);
Colormap colormap = XCreateColormap(display, RootWindow(display, visual_info.screen), visual_info.visual, AllocNone);
XSetWindowAttributes window_attributes = {};
window_attributes.colormap = colormap;
window_attributes.background_pixel = 0xFFFFFFFF;
window_attributes.border_pixel = 0;
window_attributes.event_mask = KeyPressMask | KeyReleaseMask | StructureNotifyMask | ExposureMask;
unsigned long value_mask = CWBorderPixel | CWColormap | CWEventMask;
window = XCreateWindow(display, RootWindow(display, visual_info.screen), 100, 100, 500, 500, 0, visual_info.depth, InputOutput, visual_info.visual, value_mask, &window_attributes);
XMapWindow(display, window);
XSync(display, False);
XEvent* event = nullptr;
while(!event || event->type != DestroyNotify) {
XCheckWindowEvent(display, window, VisibilityChangeMask, event);
}
XUnmapWindow(display, window);
XDestroyWindow(display, window);
XCloseDisplay(display);
return 0;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79283208/c-app-using-xlib-exits-with-non-zero-return-value[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия