首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX版本信息

DirectX版本信息
EN

Stack Overflow用户
提问于 2014-11-24 21:48:43
回答 1查看 622关注 0票数 0

我需要获取安装在我机器上的DirectX的版本信息(主要版本信息和次要版本信息)。我尝试使用Wiki,但在我的安装了DirectX 11的机器上返回4.09.00.0904。根据下面的DirectXSetupGetVersion链接,这个值是错误的:http://en.wikipedia.org/wiki/DirectX。有人能帮我找到DirectX的确切版本信息吗?

问候你,米德洪

EN

回答 1

Stack Overflow用户

发布于 2014-11-25 04:22:23

你应该解释为什么你想知道"DirectX版本“。

除非你使用的是Windows的老版本(即Windows9x/ ME),否则了解DirectX可用的主要方法是基于操作系统版本。这最好是作为一个“你必须达到这个高度才能骑这趟车”的风格检查。我将介绍如何在this blog post中完成此操作,这应该在安装程序中完成,而不是通过应用程序完成。

对于Direct3D 11,如果你想支持Windows Vista,这里有一些复杂性。Direct3D 11 Deployment for Game Developers文章和Direct3D 11 Install Helper示例详细介绍了这一点。

一旦应用程序启动,确定特定版本是否可用的最佳方法是尝试创建设备和/或QueryInterface该版本。对于Direct3D 11最低版本的应用程序,我在Anatomy of Direct3D 11 Create Device中介绍了这一点。

如果你担心没有Direct3D 11 --就像在Windows XP上一样,因为你设置了“你必须这么高才能骑这趟车”检查这个低值--你应该使用显式加载而不是隐式加载来获得创建Direct3D 11设备的入口点。

代码语言:javascript
复制
static PFN_D3D11_CREATE_DEVICE s_DynamicD3D11CreateDevice = nullptr;

if ( !s_DynamicD3D11CreateDevice )
{            
    HMODULE hModD3D11 = LoadLibrary( L"d3d11.dll" );
    if ( !hModD3D11 )
        // error 

    s_DynamicD3D11CreateDevice = reinterpret_cast<PFN_D3D11_CREATE_DEVICE>( GetProcAddress( hModD3D11, "D3D11CreateDevice" ) ); 
    if ( !s_DynamicD3D11CreateDevice )
       // error, no Direct3D 11 present on the system
}

HRESULT hr = s_DynamicD3D11CreateDevice( ... );
if ( FAILED(hr) )
    // error

另一件要记住的事情是,从Windows XP Service Pack2开始,"DirectX版本“与 End-User Runtime (又称DirectSetup,DXSETUP,DXWSETUP)实际上在Windows Pack2上所做的事情完全没有任何关系。参见No So Direct Setup。如果您需要检查D3DX、XAudio2.7、XACT1.3、Managed DLL1.1等,则必须显式加载正确的DirectX。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27106396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档