• 締切済み

DirectXでのエラー処理について

現在、Visual Studio .NET 2003でWindowsフォームを使って C++、DirectXのプログラムを作っています。 そこでXファイルを読み込むために以下のようにしているのですが、 Xファイルが存在しない場合 「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。」 というメッセージが繰り返し出てきてreturnまで処理が進みません。 returnまで進まない原因、もしくはXファイルが存在しない場合の よい処理方法があれば教えていただけないでしょうか。 初心者なので説明足らずなところがあると思いますが よろしくお願いします。 if(FAILED(D3DXLoadMeshFromX("**.x",D3DXMESH_SYSTEMMEM,**,NULL,&**,NULL,&**,&**))){ MessageBox(NULL,"",NULL,MB_OK); return E_FAIL; } (**は全て独自、同じではありません)

みんなの回答

  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

回答がないようなので・・・ まだお困りですか? returnまで進まないのは、例外が発生しているからです。 試していないので間違っているかもしれませんが、例外が発生しているのはD3DXLoadMeshFromXの中なんですよね? 対策としては try catch で例外を捕まえるとか、事前にファイルの有無を調べるとかになりますかね。

tsuki_dash
質問者

お礼

実は私の勘違いで、例外が発生しているのは MessageBoxの方だったんです。それが何故かはわからないんですが… 一応その1行を消せば動くようにはなりました。 でもtry catchの方がいいみたいですね。 どうもありがとうございました。

関連するQ&A