ページ 11

DirectXToolKitについて

Posted: 2014年11月21日(金) 16:11
by イフリナ=フリード
現在、KinectとHDMを使用してゲームの制作をしています。
メッシュ表示をしようとし
VSを使用してFBXを使いビルドしcmoファイルに変換し、DirextXToolKitを使ってレンダリングしようとしたのですが、
Draw機能を持っているModel.hやDDSテクスチャを読み込めるDDSTextuerLoad.h(XTKの他のヘッダファイルもだめでした)
をインクルードしてコンパイルすると、DXGI_1.2.hで以下のエラーが起きてしまいます。

error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

error C2143: 構文エラー : ',' が '*' の前にありません。

error C2061: 構文エラー : 識別子 'DXGI_RGBA'

自分でも検索をして調べては見たのですが、出るサイトは英語ばかりで訳しても、自分の調べ方が悪いのか
今起こっている状態についての情報が出てきませんでした。

以下が上記のヘッダ以外にインクルードしているヘッダファイルです

#include <cstdio> // C/C++標準ヘッダー
#include <Windows.h> // Windows APIヘッダー
#include <tchar.h> // マルチバイト文字ヘッダー
#include <d3d11.h>
#include <d3d10_1.h>
#include <d2d1.h>
#include <dxerr.h>
#include <wchar.h>
#include <stdarg.h>
#include <math.h>
#include <wincodec.h>
#include <wincodecsdk.h>
#include <fbxsdk.h>

環境
Visual Stadio Communtiy 2013
OS:Windows8(64bit)

どうかご教授いただけたらと思います。
よろしくお願いします。

Re: DirectXToolKitについて

Posted: 2014年11月21日(金) 16:17
by h2so5
ヘッダーをインクルードする順番はどうなっていますか。

Re: DirectXToolKitについて

Posted: 2014年11月21日(金) 16:34
by イフリナ=フリード
>h2so5(副管理人)さん
#include <cstdio> // C/C++標準ヘッダー
#include <Windows.h> // Windows APIヘッダー
#include <tchar.h> // マルチバイト文字ヘッダー
#include <d3d11.h>
#include <d3d10_1.h>
#include <d2d1.h>
#include <dxerr.h>
#include <wchar.h>
#include <stdarg.h>
#include <math.h>
#include <wincodec.h>
#include <wincodecsdk.h>
#include <fbxsdk.h>
と書いてあるまんまです。
Model.hとDDSTextuerLoad.hはfbxsdk.hの下に書きました

Re: DirectXToolKitについて

Posted: 2014年11月26日(水) 10:13
by atori
Windows8.0以降、DirectSDKはWindowsSDKとして元から入っていますが、
DirectSDKをもしもネットから落としてきて、(June2010とか)かつそちらのヘッダをインクルードしていれば、
バージョンが違う為エラーが出てしまうようです。

もしネットから落としてきた物がある場合は、それをアンインストールしてください。

Re: DirectXToolKitについて

Posted: 2014年11月26日(水) 18:28
by イフリナ=フリード
>atoriさん

ありがとうございます。無事コンパイルに成功しました。
まさか、SDKのバージョンが関係してたなんて・・・・
おかげで次のステップにいけます!!

Re: DirectXToolKitについて

Posted: 2014年11月26日(水) 22:58
by atori
解決したようで良かったです。
が、一つとても大事なことをいい忘れていたので補足させていただきます。

Windows8に元から入っているSDKは、D3DX系のライブラリが一切入っていません。
DirectXでのプログラミング経験がもしお有りでしたら、それがどういうことかわかっていただけるかもしれません。
要は頭にD3DX~と付く関数は全て使えなくなるわけです。

D3DXには、
・ベクトルや行列の算術系関数
・テクスチャの読み込み
・シェーダのコンパイル
などがありました。

これが使えないのは困ったなんてものではありません。
その辺りの変わりとなってくれるのがDirectXToolKitなのですが、それらは下2つしかカバー出来ません。
算術系はXNA Math、またはDirectXMathを新たに落として来る必要があります。

私はDirectXToolKitを使わずにカバーしているので詳細はわからないのですが、
参考になるかもしれない記事を幾つか貼っておきます。
D3DX はどこへ消えた?(DirectXTK と DirectXTex を導入する)
D3DX が削除された後の対応
D3DXからXNA Math(DirectX Math)への移行

探してきて羅列しただけなので、同じようなことを書いてあると思います。
私も移行する際は非常に苦戦した思いがあります。
わからないことがあればまた聞いていただければと思います。