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

标签 c# opengl opentk windows-screensaver

我的 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# - 无法在屏幕保护程序的 DLL 'opengl32.dll' 中找到入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860056/

相关文章:

c# - 获取在 gridview 中使用的日期选择器的值

opengl - 当我应用投影 OpenGL 时输出失真

c++ - 需要使用 glGetProgramiv 函数进行说明

c# - GL 项目无法正常工作

c# - OpenTK:为什么 GraphicsMode 不可用?

c# - 不确定在这种情况下如何正确使用 Matrix4.LookAt

c# - 复制字节时出错 - 偏移量和长度超出范围。

c# - RAM 测试应用程序如何工作? C# 例子?

c# - 如何运行静态构造函数?

opengl - 如何在 Mac OS 中的 NSOpenGLView 和全屏上下文之间共享纹理?