wglMakeCurrent FAILS используя DetourCreateProcessWithDll
Я использую DetourCreateProcesswithDLL
в Visual Studio 2010 и предоставление заменяющих dll для Opengl32.dll, glu32.dll и glut32.dll при создании процесса для демонстрационного приложения abgr.exe из демонстрационных программ glut.
Таким образом, я перехватываю библиотеки Opengl32, glu32, glut32. Затем API вызывает соответствующий API из системной папки или обычных DLL-файлов.
Эти библиотеки имеют все apis, определенные в соответствующих библиотеках.
Проблема в том, что wglMakeCurrent
возвращает 0 или завершается неудачно с демонстрационным приложением с переизбытком, таким как abgr.exe на NVidia GTX480 на Win 7 x64 bit. Он также не работает с другими демонстрационными приложениями.
Это работает, если я изменяю Совместимость abgr.exe или исполняемого файла GLIntercept, который вызывает DetourCreateProcesswithDLL
, т.е. щелкните правой кнопкой мыши на exe -> изменить свойства -> совместимость -> проверить запуск в 256 цветов.
Однако это выглядит как обходной путь, и дисплей выглядит не так хорошо. Как я могу использовать без необходимости делать это. Как получить хорошую ценность для wglMakeCurrent
,wglMakeCurrent
вызывается изнутри glutCreateWindow
,
Это не проблема для AMD Fusion GPU. Там wglMakeCurrent
и возвращает хорошее значение. Проблема только на NVIDIA GTX 480. Кто-нибудь знает, как решить эту проблему? Я обновил драйвер и показывает версию 4.3.790.0 в Справке панели управления NVIDIA-> О программе.
wglCreateContext возвращает 0x00010000