2012-05-14 14 views
6

私は次のコードでD3D11CreateDevice()を呼び出しています:D3D11CreateDevice()がE_FAILで失敗する原因は何ですか?

ID3D11Device* md3dDevice; 
ID3D11DeviceContext* md3dImmediateContext; 
D3D_DRIVER_TYPE md3dDriverType = D3D_DRIVER_TYPE_HARDWARE; 
createDeviceFlags = D3D11_CREATE_DEVICE_DEBUG; 
HRESULT hr = D3D11CreateDevice(
      0,     
      md3dDriverType, 
      0,     
      createDeviceFlags, 
      0, 0,    
      D3D11_SDK_VERSION, 
      &md3dDevice, 
      &featureLevel, 
      &md3dImmediateContext); 

しかし、HRESTUL hrに保存された結果はE_FAILです。初期Direct3D.exeで0x7590b9bcで

初回例外:マイクロソフト
C++の例外:メモリ位置0x0049ec64で_com_error ..
C:\ユーザー\アンドリュー\デスクトップ\コードコンソールは、次のような出力を持っています\共通\のd3dapp.cpp(389):
D3D11CreateDevice(0、md3dDriverType、0、createDeviceFlags、0、0、 D3D11_SDK_VERSION、& md3dDevice、& featureLevel、& md3dImmediateContext)
HR = E_FAIL(0x80004005の)初期Direct3D.exeブレークポイントを起動しました

私は、コードのビルドとして、それがリンクする問題であるとは思いませんが、次の追加の依存関係が定義されています。

d3d11lib
d3dx11d.lib
D3DCompiler.lib
Effects11d.lib
dxerr.lib

私の次の思考が私のカードはD3D11に対応していないということでした。しかし、そうではありません。ここdxdiagの出力は次のようになります。

------------------ 
System Information 
------------------ 
Time of this report: 5/14/2012, 02:29:16 
     Machine name: WINDOZE 
    Operating System: Windows 7 Professional 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.120330-1504) 
      Language: English (Regional Setting: English) 
System Manufacturer: Gigabyte Technology Co., Ltd. 
     System Model: GA-880GMA-UD2H 
       BIOS: Award Modular BIOS v6.00PG 
      Processor: AMD Phenom(tm) II X4 955 Processor (4 CPUs), ~3.2GHz 
      Memory: 8192MB RAM 
Available OS Memory: 8188MB RAM 
      Page File: 4121MB used, 12254MB available 
     Windows Dir: C:\Windows 
    DirectX Version: DirectX 11 
DX Setup Parameters: Not found 
    User DPI Setting: Using System DPI 
System DPI Setting: 96 DPI (100 percent) 
    DWM DPI Scaling: Disabled 
    DxDiag Version: 6.01.7601.17514 64bit Unicode 

------------ 
DxDiag Notes 
------------ 
     Display Tab 1: No problems found. 
     Display Tab 2: No problems found. 
     Sound Tab 1: No problems found. 
     Sound Tab 2: No problems found. 
     Sound Tab 3: No problems found. 
     Sound Tab 4: No problems found. 
      Input Tab: No problems found. 

-------------------- 
DirectX Debug Levels 
-------------------- 
Direct3D: 0/4 (retail) 
DirectDraw: 0/4 (retail) 
DirectInput: 0/5 (retail) 
DirectMusic: 0/5 (retail) 
DirectPlay: 0/9 (retail) 
DirectSound: 0/5 (retail) 
DirectShow: 0/6 (retail) 

--------------- 
Display Devices 
--------------- 
      Card name: ATI Radeon HD 5670 
     Manufacturer: Advanced Micro Devices, Inc. 
      Chip type: ATI display adapter (0x68D8) 
      DAC type: Internal DAC(400MHz) 
     Device Key: Enum\PCI\VEN_1002&DEV_68D8&SUBSYS_56701545&REV_00 
    Display Memory: 1774 MB 
    Dedicated Memory: 2032 MB 
     Shared Memory: 3838 MB 
     Current Mode: 1920 x 1080 (32 bit) (60Hz) 
     Monitor Name: Generic PnP Monitor 
     Monitor Model: E2241 
     Monitor Id: GSM581A 
     Native Mode: 1920 x 1080(p) (60.000Hz) 
     Output Type: HDMI 
     Driver Name: aticfx64.dll,aticfx64.dll,aticfx64.dll,aticfx32,aticfx32,aticfx32,atiumd64.dll,atidxx64.dll,atidxx64.dll,atiumdag,atidxx32,atidxx32,atiumdva,atiumd6a.cap,atitmm64.dll 
Driver File Version: 8.17.0010.1119 (English) 
    Driver Version: 8.951.0.0 
     DDI Version: 11 
     Driver Model: WDDM 1.1 
    Driver Attributes: Final Retail 
    Driver Date/Size: 3/9/2012 01:14:42, 958464 bytes 
     WHQL Logo'd: Yes 
    WHQL Date Stamp: 
    Device Identifier: {D7B71EE2-2B98-11CF-AA72-7A76BEC2C535} 
      Vendor ID: 0x1002 
      Device ID: 0x68D8 
      SubSys ID: 0x56701545 
     Revision ID: 0x0000 
Driver Strong Name: oem1.inf:ATI.Mfg.NTamd64.6.1:ati2mtag_Evergreen:8.951.0.0:pci\ven_1002&dev_68d8 
    Rank Of Driver: 00E62001 
     Video Accel: ModeMPEG2_A ModeMPEG2_C 
    Deinterlace Caps: {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
        {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {3C5323C1-6FB7-44F5-9081-056BF2EE449D}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {552C0DAD-CCBC-420B-83C8-74943CF9F1A6}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
     D3D9 Overlay: Not Supported 
      DXVA-HD: Not Supported 
     DDraw Status: Enabled 
     D3D Status: Enabled 
     AGP Status: Enabled 

      Card name: ATI Radeon HD 5670 
     Manufacturer: Advanced Micro Devices, Inc. 
      Chip type: ATI display adapter (0x68D8) 
      DAC type: Internal DAC(400MHz) 
     Device Key: Enum\PCI\VEN_1002&DEV_68D8&SUBSYS_56701545&REV_00 
    Display Memory: 1774 MB 
    Dedicated Memory: 2032 MB 
     Shared Memory: 3838 MB 
     Current Mode: 1600 x 900 (32 bit) (60Hz) 
     Monitor Name: Generic PnP Monitor 
     Monitor Model: W2043 
     Monitor Id: GSM4E9D 
     Native Mode: 1600 x 900(p) (60.000Hz) 
     Output Type: HD15 
     Driver Name: aticfx64.dll,aticfx64.dll,aticfx64.dll,aticfx32,aticfx32,aticfx32,atiumd64.dll,atidxx64.dll,atidxx64.dll,atiumdag,atidxx32,atidxx32,atiumdva,atiumd6a.cap,atitmm64.dll 
Driver File Version: 8.17.0010.1119 (English) 
    Driver Version: 8.951.0.0 
     DDI Version: 11 
     Driver Model: WDDM 1.1 
    Driver Attributes: Final Retail 
    Driver Date/Size: 3/9/2012 01:14:42, 958464 bytes 
     WHQL Logo'd: Yes 
    WHQL Date Stamp: 
    Device Identifier: {D7B71EE2-2B98-11CF-AA72-7A76BEC2C535} 
      Vendor ID: 0x1002 
      Device ID: 0x68D8 
      SubSys ID: 0x56701545 
     Revision ID: 0x0000 
Driver Strong Name: oem1.inf:ATI.Mfg.NTamd64.6.1:ati2mtag_Evergreen:8.951.0.0:pci\ven_1002&dev_68d8 
    Rank Of Driver: 00E62001 
     Video Accel: ModeMPEG2_A ModeMPEG2_C 
    Deinterlace Caps: {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
        {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {3C5323C1-6FB7-44F5-9081-056BF2EE449D}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {552C0DAD-CCBC-420B-83C8-74943CF9F1A6}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive 
        {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
        {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps= 
     D3D9 Overlay: Not Supported 
      DXVA-HD: Not Supported 
     DDraw Status: Enabled 
     D3D Status: Enabled 
     AGP Status: Enabled 

E_FAILの原因何ができるかのように任意の助けをいただければ幸いです。

+0

「createDeviceFlags」をどのように初期化しましたか?また、 'D3D_DRIVER_TYPE_HARDWARE'の後ろにセミコロンがありません。これは実際のコードですか? – Ben

+0

いいえ、実際のコードではありませんが、かなり近いです。問題は 'createDeviceFlags'であるようです。 'createDeviceFlags = 0;'なら、コードは正しく動作します。 'createDeviceFlags = D3D11_CREATE_DEVICE_DEBUG; 'ならば失敗します。なぜこれは問題になるのだろうか? 'D3D11_CREATE_DEVICE_DEBUG'はhttp://msdn.microsoft.com/en-us/library/windows/desktop/ff476107(v=vs.85).aspxに従って有効です –

+0

問題を示す実際のコードを掲載する必要があります。 – Ben

答えて

5

この問題は、Direct X Debug Runtimeがインストールされていないことが原因であると思われます(インストール時にインストールするオプションはDirect X SDKです)。ただ普通のDirect X Runtimeです。 Direct X Runtimeはオーバーヘッドが少なく、高速ですが、アプリケーションのデバッグには使用できません。

-------------------- 
DirectX Debug Levels 
-------------------- 
Direct3D: 0/4 (retail) 
DirectDraw: 0/4 (retail) 
DirectInput: 0/5 (retail) 
DirectMusic: 0/5 (retail) 
DirectPlay: 0/9 (retail) 
DirectSound: 0/5 (retail) 
DirectShow: 0/6 (retail) 

インストールしても、電源がオンになっていません。役に立つ情報があります。how to switch between Debug and Release version of Direct X Runtime

+0

私の理解では、フラグ 'D3D11_CREATE_DEVICE_DEBUG'がDirectX 11のデバッグランタイムを有効にしていました。リンク先の記事はDirectX 9に関するものでしたが、それ以降は変更されました。 –

+0

インストール中にSDKがうまくいかなかったかもしれませんが。 SDKを再インストールしただけで、フラグ 'D3D11_CREATE_DEVICE_DEBUG'が正しく動作するようになりました。 2010年6月のSDKリリースには、デバッグランタイムをインストールするオプションは含まれていません。自動的に組み込まれます。 –

関連する問題