0

DetourCreateProcesswithDLL在 Visual Studio 2010 中使用并为 Opengl32.dll 、 glu32.dll 和 glut32.dll 提供替换 dll,同时从 glut 演示程序为 abgr.exe 演示应用程序创建进程。

这样我就拦截了 Opengl32、glu32、glut32 库。然后这些 api 从系统文件夹或通常的 dll 中调用相应的 api。

这些 dll 在其各自的库中定义了所有 api。

问题是wglMakeCurrent在 Win 7 x64 位的 NVidia GTX480 上使用 glut 演示应用程序(如 abgr.exe)返回 0 或失败。它也不适用于其他演示应用程序。

如果我更改正在调用的 abgr.exe 或 GLIntercept 可执行文件的兼容性,它确实有效DetourCreateProcesswithDLL。即右键单击exe -> 更改属性-> 兼容性-> 检查以256 色运行。

但是,这看起来像是一种解决方法,并且显示效果看起来并不那么好。我怎样才能使用而不必这样做。如何获得良好的价值wglMakeCurrentwglMakeCurrent从内部调用glutCreateWindow

这在 AMD Fusion GPU 上不是问题。那里wglMakeCurrent并返回一个很好的价值。问题仅出现在 NVIDIA GTX 480 上。有人知道如何解决此问题吗?我已更新驱动程序并在 NVIDIA 控制面板 Help->About 上显示版本 4.3.790.0

wglCreateContext 返回 0x00010000

4

0 回答 0