ошибка: «BadDevice» не был объявлен в этой области

Любая идея, почему я получаю эту ошибку ?:

error: ‘BadDevice’ was not declared in this scope

Я включил:

#include <X11/Xlib.h>

а также

#include <X11/extensions/XInput2.h>

в моем файле заголовка класса.

Я использую это так:

 int ret = XIGrabDevice(display_, 2,  LinuxInputManager::getWindow(),
CurrentTime, None, GrabModeAsync,
GrabModeAsync, False, &eventMask_);
if (ret == BadValue)
std::cout << "bad value" << std::endl;
else if (ret == BadDevice)
std::cout << "BadDevice" << std::endl;
if (ret == BadMatch)
std::cout << "BadMatch" << std::endl;
if (ret == BadWindow)
std::cout << "BadWindow" << std::endl;

if (ret) {
std::cout << "not available 3" << std::endl;
}

ура

Джарретт

1

Решение

Вот как ты это используешь

int rc;
if ((rc = XIGrabDevice(dpy, 2,  win, CurrentTime, None, GrabModeAsync,
GrabModeAsync, False, &mask)) != GrabSuccess)
{
fprintf(stderr, "Grab failed with %d\n", rc);
return;
}

или попробуйте (также попробуйте с вашими функциями)

int rc;
if (!(rc = XIGrabDevice(dpy, 2,  win, CurrentTime, None, GrabModeAsync,
GrabModeAsync, False, &mask)))
{
fprintf(stderr, "Grab failed with %d\n", rc);
return;
}

Похоже, что либо BadValue, BadDevice, BadMatch … будет значением int, и они могут не быть определены в заголовочных файлах, поэтому я бы проверил, чтобы убедиться, что они где-то есть. Итак, попробуйте установить переменную ret. Ваши коды ошибок могут быть что-то вроде 1, 2, 3, 4 или они могут быть 1 или 0. Вы должны сами определить коды ошибок.

Вот пример программы того, как кто-то еще использовал XIGrabDevice: http://people.freedesktop.org/~whot/xi2-recipes/part5.c

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]