2017-12-26 70 views
0

私は昨日からDirectX11プロジェクトをコンパイルしようとしていたので、いくつかのコンパイラエラーに苦労しました。レンダリングするオブジェクトを作成して定義するまで、すべてがうまくいきました。これにシェーダ(タイプエフェクト)を追加しました。シェーダをコンパイルする際のエラー - DirectX11

コンパイラは "" fxc.exe "がコード1で終了した"と言った。これを解決する 、私はこの答えに続く:したがってDirectX compilation error: error MSB6006: "fxc.exe" exited with code 1

を、私は私のHLSLコンパイラのシェーダーモデルを定義した:

Shader Model 5.0 (/5_0) 

しかし、この後、私はまだ若干の誤差が出る:

1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(68): error C3646: 'MinPrecision': unknown override specifier 
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(68): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(235): error C3646: 'InterpolationMode': unknown override specifier 
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(235): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1271): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1271): error C2143: syntax error: missing ',' before '*' 
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1275): error C2061: syntax error: identifier 'DXGI_RGBA' 

3つの最後のエラーについては、私は前にそれらを持っていたが、このMSDNのページのステップ5-aに従ってそれらを修正した:https://msdn.microsoft.com/en-us/library/windows/desktop/ee663275(v=vs.85).aspx しかし、今これらのエラーが戻って、私はなぜ理解していない。私はプロジェクトのプロパティを再度チェックしましたが、エラーはまだ戻っています。

私はこれがいくつかのコンパイラエラーだと思うし、私は上記のリンクの手順6に従って修正しようとしましたが、動作しませんでした。

私は途中でVisual Studio 2015を使用しています。

誰でも私を助けてくれますか?私は本当に答えを探していてそれを修正しようとしていますが、今は何も動かないようです。 ありがとうございます。

+1

関連コードを投稿していないので、コードの何が間違っているかを確認するにはどうすればよいですか? – Asesh

答えて

1

ほとんどの場合、従来のDirectX SDKとWindows 8.1 SDKが正しく混在していません。 D3D_MIN_PRECISIONには、Windows 8.1 SDKバージョンd3dcommon.hでは定義されていますが、従来のDirectX SDKバージョンではではなく、の定義がありません。

あなたのインクルード/ libsパスにWindows 8.1 SDKが最初にリストされていることを確認してください。

正しいバージョンを確実に受け取れるように<d3dx11.h>を含める前に、<d3d11.h>を明示的に含めるようにしてください。

最初に<d3dcommon.h>を明示的に含めることもできます。

プロジェクトでは、従来のDirectX SDKを使用しないのが理想的です。 Living without D3DXおよびThe Zombie DirectX SDKを参照してください。

もちろんこれはすべてあなたのC++コードに当てはまります。ヘッダーd3d11shader.hdxgi1_2.hは、HLSLシェーダコードに含めることはできません。

+0

ありがとうございます! の前に含めるだけで、すべてのこれらのエラーを解決しました!どうもありがとうございます ! –

+1

MSDN手順のステップ5b: –

関連する問題