【问题标题】:opengl32.dll and Windows 10 updateopengl32.dll 和 Windows 10 更新
【发布时间】:2018-02-04 10:39:11
【问题描述】:

我正在调试我的应用程序,该应用程序在 Windows 10 上与 opengl 配合良好。由于似乎缺少 opengl 功能,该应用程序已损坏。当我安装 Windows 10 的最新更新时,问题似乎已经开始。我怀疑 opengl32.dll 缺少 Windows 的关键功能。

具体来说,我总是通过调用 Windows wglGetProcAddress 来访问 wglChoosePixelFormatARB。但是,wglGetProcAddress 现在为此函数返回一个空指针。

作为一种解决方法,我尝试通过使用 opengl32.dll 的 LoadLibrary 和 GetProcAddress 来访问 wglChoosePixelFormatARB。返回值仍为空,GetLastError 返回 ERROR_PROC_NOT_FOUND。

为了仔细检查问题,我从 nirsoft.com 下载了一个 dll 导出查看器工具。我看到 wglChoosePixelFormatARB 没有在 opengl32.dll 中列出,而旧函数 wglChoosePixelFormat 在那里。 wglChoosePixelFormat 函数是一种更古老的选择格式的方法。分发这个 opengl32 dll 背后的逻辑是什么?

我从 Microsoft 阅读了以下答案,但似乎没有其他更新可用,或者该答案将解决我的问题:

https://answers.microsoft.com/en-us/windows/forum/windows_10-performance/problems-with-opengl32dll/23c4b0e6-8742-412a-8a4e-2c6024cc78e1

有人有什么建议吗?

【问题讨论】:

  • "我试图通过使用 opengl32.dll 的 LoadLibrary 和 GetProcAddress 来访问 wglChoosePixelFormatARB" 是的,那永远行不通。 wglGetProcAddress 存在正是因为 opengl32.dll 不公开这样的功能。安装的ICD驱动就可以了,除非你出去找到那个DLL(不同厂商不同),否则不能使用GetProcAddress读取OpenGL函数指针。
  • 或使用 GLEW 或任何其他 OpenGL 扩展牧马人代替...
  • 这显然是一个驱动程序错误。 wglChoosePixelFormatARB 必须得到支持和wglGetProcAddress查询,否则无数现有应用程序将失败。
  • wglGetProcAddress 还返回了在该函数上未找到的值。我同意这一定是驱动程序错误,但我被告知设备管理器下的图形设备没有更新。此外,如果 GetProcAddress 不应该在 opengl32.dll 上工作,为什么它返回 wglChoosePixelFormat 而不是 wglChoosePixelFormatARB 的 proc 地址?是否可以强制安装驱动程序?
  • 驱动程序重新安装很容易。您应该能够获得特定于供应商的所需文件(.exe 或 .msi)。可能在您的供应商网站上。 Device Manager 是另一条路线,查看unistall,然后查看previous driver。另一种方法:在“配置->更新”中查看历史记录并卸载一些更新。

标签: opengl windows-10


【解决方案1】:

事实证明,戴尔从 2017 年 11 月开始的 Intel HD 驱动程序更新正在搞乱 OpenGL。解决问题的一种方法是使用戴尔较旧的驱动程序更新。

这可能是错误的;较旧的驱动器可能不包含英特尔安全更新。选择你的毒药。

工作驱动在这里:

https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=40Y1J

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2017-05-28
    • 2014-04-03
    • 2017-11-17
    • 2015-10-29
    相关资源
    最近更新 更多