4

如果给我一个任意 3D 应用程序,比如屏幕保护程序或游戏,我如何知道它在运行时使用的是哪个 DirectX 或 OpenGL 版本?假设我没有关于要在网上搜索到的二进制文件的信息,比如有人刚刚写了一个 DirectX 演示并将其提供给我。

4

3 回答 3

2

您可以使用一些其他工具,例如:DependencyWalker并检查应用程序使用了哪些 DLL。

如果您有 OpenGL 应用程序,那么您可以使用gDebugger来确定调用了哪些函数调用以及调用顺序。同样对于 DX 应用程序有一个 PIX

于 2012-07-20T09:53:50.157 回答
1

好吧,程序二进制文件将链接到 Direct3D DLL 或 OpenGL DLL。在 DirectX 中,每个版本都有自己的一组 DLL。在 OpenGL 的情况下,唯一的判断方法是拦截 OpenGL 调用。OpenGL-3 及更高版本需要一些特殊的上下文创建方法,包括设置预期版本。OpenGL-3 之前的任何东西实际上都是带有扩展的 OpenGL-1.1,其中一些扩展成为核心功能。

于 2012-07-20T09:43:01.413 回答
1

如果您使用的是 Windows 计算机,则可以使用 Process Explorer (PE)。

  1. 启动 PE。按 CTRL + L 或查看 -> 勾选“显示下窗格”
  2. 启动您的应用程序。
  3. 在 PE 中找到您的应用程序。您将能够看到下部窗格中使用的所有动态库。如果您在下方窗格中看不到任何内容,请使用管理员权限运行进程资源管理器。

PE对此非常详细。你很可能会找到你要找的东西。

于 2016-12-16T12:47:39.300 回答