我使用一个使用 OpenGL 的外部 C++ DLL。但是当运行的系统上没有 OpenGL 时,外部 DLL 会崩溃。我试图从我的 C# 代码中的 dll 中捕获异常,但似乎我无法捕获它,因为异常是在 C++ dll 中引发的。
所以我的下一个想法是实现一个简单的函数来检查安装了哪个版本的 OpenGL。
我完全不知道 OpenGL 及其工作原理,但有人告诉我我需要创建一个上下文来获取它的版本。有没有一种简单的方法来实现在 C# 中执行此操作的函数?我不想为了获取版本而导入像 OpenTK 这样的重 dll。
我可以直接调用opengl32.dll并创建上下文来获取版本吗?
例如
[DllImport("opengl32.dll")]
public static extern string glGetString(string glVersion);
Run Code Online (Sandbox Code Playgroud)
我知道这个代码段不起作用,但是需要什么才能使它起作用?我如何创建这样的上下文,因为如果这不起作用,我可能已经知道没有 OpenGL,如果我能抓住它,我的问题就会得到解决。