Теперь я пишу программу MFC с opengl. И когда я попытался объединить OpenGL с MFC, я столкнулся с некоторыми проблемами:
Сначала я определил класс с именем: CSCommTestDlg и определил функцию-член с кодами следующим образом:
void CSCommTestDlg::OpglMain(int argc, char* argv[])
{
glutDisplayFunc(displayCude);
}
displayCube также является функцией-членом класса CSCommTestDlg, а glutDisplayFunc является глобальной функцией (функция opengl), объявления функций glutDisplayFunc выглядят следующим образом:
GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void));
Да, как вы можете видеть, параметр glutDisplayFunc является указателем на функцию, и я сделал так, чтобы он указывал на функцию-член displayCube , которая кажется недопустимой, и я получил такую ошибку:
error C2664: 'glutDisplayFunc' : cannot convert parameter 1 from 'void (void)' to 'void (__cdecl *)(void)'
None of the functions with this name in scope match the target type
кажется, что я не могу указать на функцию-член в глобальной функции, но она мне нужна. Как это исправить?