none
C# Express にてDirectX RRS feed

  • 質問

  • C#ExpressでDirectXを使おうと思ったのですが、DirectXをインストールしても

    「新しいプロジェクト」をクリックして次の画面にDirectXのテンプレートが出てきません。これはそういう仕様なのでしょうか?

    本を買ってその通りにやろうとしても普通のVisual Studioのやり方が載っているだけでExpressの事に関しては書かれていないものでほとほと困っております。

    ご存知の方、DirectXを使えるようにする方法を教えていただければ幸いです。

    2006年7月20日 1:05

すべての返信

  • 使ったことないのでよくわかりませんが、
    Direct X って”ランタイム”と”SDK”があると思います。
    SDKのほう入れてますか?
    私にわかるのはここまでです。すいません。

    2006年7月20日 4:32
  • SDK です。2006 Juneのやつを入れました。

    けど、項目が出てこないのです。ぐすん。

    プログラム以前に仕様で悩んでおります。

    どなたかお助けを。

    2006年7月20日 6:55
  • 参照設定で追加してはどうでしょう?

    別にテンプレートが出てこないと使えないってわけではないと思います。

    2006年7月20日 10:27
  • え?そうなの?

    と思いいろいろと調べてみましたら

    http://www.humo.vis.ne.jp/directx/01/01.html

    にどうやらテンプレートなしでいける方法があり

    このとおりにやってみたらどうやらいけそうです。

    どうもありがとうございます。

    ただ、Microsoft.DirectX.DirectX3D.dll

    のバージョン違いのものが複数インストールされているようで

    そのかねあいでうまくいきません。

    別の問題が発生しましたがとりあえずは一歩前進

    した感があります。

    2006年7月20日 14:07
  • DirectX SDK 2006 June版で試してみました。
    ただし、VC#2005Express Editionではなく、VS2005Professional Editionです。

    アプリケーション テンプレートを作成する
    のとおり作成したら、それらしいのができました。


    だたし、やはり参照設定が問題で、どのバージョンを使えばいいか微妙でした。
    一応

    Microsoft.DirectX.Direct3D が 1.0.2902.0 しかないので
    Microsoft.DirectX

    Microsoft.DirectX.Direct3DX
    も同じバージョンにしたところ、エラーになってしまったので、とりあえず、
    Microsoft.DirectX.Direct3DX
    を1つずつバージョンをあげていったところ 1.0.2905.0 ですべてのエラーがなくなりました。

    まぁ、間違っていれば、再度同じ名前でテンプレートを作成すれば上書きされるようなのでとりあえずはこれでどうでしょうか?

    2006年7月20日 15:35
  • バージョンアップはどのようにされましたか?

    初歩的な質問っぽいのですが恥を忍んで聞きます。

    教えていただけますでしょうか?

    2006年7月20日 17:20
  •  SOSOSOSO さんからの引用

    バージョンアップはどのようにされましたか?

    DirecetXはバージョンアップはしていません。2006 Juneを入れただけ。

     

    あ、もしかして

    Microsoft.DirectX.Direct3DX
    を1つずつバージョンをあげていったところ 1.0.2905.0 ですべてのエラーがなくなりました

    のこと?参照設定のところに、

    Microsoft.DirectX.Direct3DX  1.0.2902.0
    Microsoft.DirectX.Direct3DX  1.0.2903.0
    Microsoft.DirectX.Direct3DX  1.0.2904.0
    Microsoft.DirectX.Direct3DX  1.0.2905.0
          ・
          ・
          ・
    ってのを、上から参照設定してコンパイルエラーがでたら、プロジェクトツリーに追加された参照設定を削除して、再度違うバージョンを参照設定しなおしてってのを繰り返しただけです。

    2006年7月20日 23:39
  •  僕も同じようにさせていただいたのですが問題が解決しないです。

    エラー 1 型 'Microsoft.DirectX.Direct3D.Device' は 'c:\WINDOWS\Microsoft.NET\DirectX for Managed Code\2.0.0.0_x86\Microsoft.DirectX.dll' および 'c:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.Direct3D.dll の両方に存在します。 

    となってしまいました。

    しかも、Microsoft.DirectX.Direct3DX

    は今回のプログラムに必要なく

    Microsoft.DirectX.Direct3D

    だけあればいいので、うーーーん。という感じです。

    エラーのヘルプページを見ても

    http://msdn2.microsoft.com/ja-jp/library/64wh5743(d=ide).aspx

    何のことやら?という感じでした。

    これは僕のやり方が間違ってるからなのか、それともソフトの問題なのでしょうか?

     

     

    2006年7月21日 9:41
  •  SOSOSOSO さんからの引用

     僕も同じようにさせていただいたのですが問題が解決しないです。

    エラー 1 型 'Microsoft.DirectX.Direct3D.Device' は 'c:\WINDOWS\Microsoft.NET\DirectX for Managed Code\2.0.0.0_x86\Microsoft.DirectX.dll' および 'c:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.Direct3D.dll の両方に存在します。 

    となってしまいました。


    Microsoft.DirectXは2.0.0.0ではなく1.0.2902.0を参照してみてはどうでしょうか?

    2006年7月21日 10:49
  • で、で、できました。

    ありがとうございます。

    これでやっと一歩を踏み出せます。

    これができなくて何度挫折しようと思ったことか。グスン。

    蒼の洞窟さん。また、なにかありましたらよろしくお願いいたします。

    2006年7月21日 11:53
  • ちなみに、2.0 の方なら、Microsoft.DirectX.dll だけ参照すれば D3D も行けるはずです。2.0 ではこの単一アセンブリに集約されているようで。

    // AudioVideoPlayback とか省かれてますが。

    2006年7月21日 23:15
  • DirectXのテンプレートの話ですが、
    theSpoke.netの掲示板で似たような話題がありました。
    (ただし,VS2005ではないですが)

    DirectXウィザードは2004Summerより廃止された

    そうです。

    2006年7月22日 8:02
  • DirectXはいろいろ調べてるとものによると一度インストールするとアンインストールできなくて

    どうしても消したい場合はリカバリしなくちゃいけないとか、バージョンによって

    内容がちがかったりと何かと融通利かない感じありますよね?

    しかももうすぐ10が出るみたいなのをどっかのホームページで読みました。

    また、がらっと変わるみたいで。

    おかげさまでやっと一歩踏み出せましたがこれから先が思いやられます。

    2006年7月22日 8:15
  • 僕も使っているうちにそれに気づきました。

    というのもいろんなサイトのサンプルコードをべたばりして

    デバッグすると

    SpriteやMeshなどのアセンブリが参照できませんとかなるんです。

    バージョン1.0.2902.0だとどうやらないみたいで

    バージョン2にしてインスタンス化するときに

    いちいちMicrosoft.DirectX.Direct3D.Sprite

    とかやって宣言する感じになるんです。

    コード組む前の仕様がとっても大変です。

    2006年7月22日 8:22
  • こちらのスレッドを参考に環境設定を行ったのですが
    最後に確認をする時、ビルドではエラーがでませんがデバックでエラーがでてしまうようです。
    Failed creating the Direct3D device
    System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
    と二回ほど出るようです。

    ぽっと出の質問で申し訳ありませんが、どうすればよいでしょうか?

    2006年8月21日 5:44
  •  エラー内容についてですが、

    > Failed creating the Direct3D device

    はデバイスの作成に失敗したことを意味し、

    > System.NullReferenceException

    はメソッドの引数に null パラメータを渡しているか、null 参照の変数を使おうとしていることを意味します。

     ただ、これだけでは原因がわからないので、

    ・どのスレッドを参考にしたのか(リンクとか)
    ・どんなコードを書いたのか
    ・使用している環境と、DirectX のバージョン、DLL のバージョン

     などを詳しく書いていただくと答えられるかもしれません。

    2006年8月23日 11:25
  • 六番目のレスに貼り付けてあったこちらを参考にしました。

    http://www.microsoft.com/japan/msdn/coding4fun/weekend/apptemplate/default.aspx

    なので、自分ではコードをいじくってないと思います。
    このサイトの2/3あたりで、テンプレートを作成する前に保存、実行と書いてあったので
    それをしようとしてうまく言ってないといったところです。
    使用してる環境は
    入れてから何もいじくっていないvisual 2005 c# express
    こちらもインストールしただけのDirectx SDK August 2006 (ランタイムは9.0c)
    DLLは触ってないと思います

    参考にしたサイトの通りに進んでいって、参照設定の中の3つの関連付けは
    microsoft.DirectXが1.0.2902.0
    microsoft.DirectXDirect3Dも同じ
    microsoft.DirectXDirect3DXは最新と思われる1.0.2911.0です。

     

    実際の警告の、一つ目の警告では
    アプリケーションデータ¥テンポラリープロジェクト¥Directxアプリケーション¥コモン内の
    dxmutmisc.cs行 778
    dxmut.cs行 2818
    が問題があるといわれ、

    二つ目の警告も場所は同じで
    dxmutmisc.cs行 788
    dxmut.cs行 2721、2844、2147、569、582
    EmptyProject.cs 437

    に問題があるとのことです。

    2006年8月24日 15:24
  •  一応

    ・Windows XP SP2
    ・Visual C# 2005 Express Edition
    ・DirectX SDK
    August 2006
    ・Microsoft.DirectX 1.0.2902.0
    ・Microsoft.DirectX.Direct3D 1.0.2902.0
    ・Microsoft.DirectX.Direct3DX 1.0.2911.0
    ・Inter(R) 82865G Graphics Controller

     でリンク先と同じ等に設定して実行してみましたが、問題なく Empty Project が起動しました。

     エラー行を見てみると、「Effect.OnLostDevice」と「Effect.OnResetDevice」メソッドで失敗しているようなので、Effect あたりが問題のように思えます。

     ただ、原因が特定できないのでなんともいえないのですが、ためしに EmptyProject.cs の137 行目の ShaderFlags を ShaderFlags.None に設定してみてください。

     それでもだめなら、もう一回リンク先の手順で作成してみてください。注意する点としてはファイルは 2003 用のファイルを読み込むようにしてください。

     ビデオカードの問題という可能性もありますが、その場合だとさすがに対処法はわからないです。

    2006年8月25日 3:49
  • 何度か試しましたが、だめだったのでもう片方の方法でやったところうまくいきました。

    テンプレート作りはあきらめて、http://www.humo.vis.ne.jp/directx/01/01.html
    の方法でいきます。

    お騒がせしてすいませんでした。

    2006年8月25日 11:50