Я пишу приложение glfw , в котором я заключил вызов функции в простой класс. У меня проблемы с настройкой ключевого обратного вызова. Мой класс определен как:
class GAME
{
private:
bool running;
public:
GAME();
int execute();
void events(int, int);
int loop();
int render();
};
Функция выполнения:
int GAME::execute()
{
glfwOpenWindow(640, 320, 8, 8, 8, 8, 0, 0, GLFW_WINDOW);
glfwSetWindowTitle("Viraj");
glfwSetKeyCallback(events);
running = true;
while(glfwGetWindowParam(GLFW_OPENED))
{
glfwPollEvents();
loop();
render();
}
return 0;
}
Компиляция следующего кода в Visual Studio 2010 дает ошибку:
error C3867: ' GAME :: events ': список отсутствующих аргументов при вызове функции; используйте '& GAME :: events' для создания указателя на член
. Использование & GAME :: events дает:
ошибку C2664: 'glfwSetKeyCallback': невозможно преобразовать параметр 1 из 'void (__thiscall GAME :: *) (int, int) 'to' GLFWkeyfun '
1> Нет контекста, в котором это преобразование возможно