编程语言
首页 > 编程语言> > c# – 无法在屏幕保护程序的DLL“opengl32.dll”中找到入口点

c# – 无法在屏幕保护程序的DLL“opengl32.dll”中找到入口点

作者:互联网

我的C#OpenTK屏幕保护程序应用程序问题非常奇怪.当我编译程序并在更改扩展名之前运行它,作为EXE文件,它可以正常工作.但是当我将扩展名更改为SCR并运行它时,它会因System.EntryPointNotFound异常(本例中为glCreateProgram函数)而崩溃.在调试器中,我在运行时检查过:

作为EXE文件:
GL.GetString(StringName.Vendor) – > “英特尔”
GL.GetString(StringName.Version) – > “2.1.0 – Build 8.15.10.2622”

作为SCR文件:
GL.GetString(StringName.Vendor) – > “微软”
GL.GetString(StringName.Version) – > “1.1.0”

在我的应用程序中,我使用GameWindow类的无参数构造函数来创建OpenGL上下文.对于很少的实验我改变了对BAT的扩展,它运行得非常好.我不知道为什么我的OpenGL上下文依赖于文件扩展名,我猜测屏幕保护程序是由系统在某种覆盖层上执行的,但实际上我找不到解决这个问题的方法.

有任何想法吗?

解决方法:

最后,经过长时间的搜索,我发现英特尔阻止了使用OpenGL对屏幕保护程序的硬件支持.我已将“sCr”的扩展名更改为傻瓜驱动程序,现在一切正常.

链接:
opengl.org forum

标签:c,opengl,opentk,windows-screensaver
来源: https://codeday.me/bug/20190709/1416023.html