ページ 11

バージョンが違うdxlibを

Posted: 2011年5月24日(火) 01:05
by small
この前人に質問するのは余り好きではないといったのですが、とても困っているので質問します・・・・

アニメーションが出来たのですが、効果音が大きかったので小さくしようとして音楽の音量を変える関数を使ったのですが、
全然小さくなりませんでした。調べてみると、dxlibの不具合で、既に修正されている問題でした。
そこで、新しいバージョンにしようとし、dxlibをダウンロードして プロジェクトに追加すべきファイル_VC用 の中のファイルをコピーして
ファイルを上履きしました。(古いファイル→新しいファイル)
そして、デバッグしてみると、エラーで出来なくなってしまいました。
どうやらリビルドというものをしないといけないみたいです。そこで、リビルドをした後にデバッグをしました。
それでもエラーが出ています。エラーの内容は 問題が発生したため○○○.exeを終了します というものです。
これは古いものから新しいものに変えたため起きたのでしょうか?
システムの復元で前に戻してみたのですが、VisualStudioC++2008の中身は変わらないようです。
VisualStudioC++2008を再インストールしたら直りますか?
本当に困っています。もう、諦めるしかないのでしょうか・・・・。
せっかくここまできたのに・・・・

Re: バージョンが違うdxlibを

Posted: 2011年5月24日(火) 01:55
by softya(ソフト屋)
どちらかと言うとバグが表面化しただけで、実はバグを内包していたのでは?と疑ったほうが良いです。
つまり、バグを取らないといけません。
デバッグビルドすると細かいエラーが出ると思いますので、デバッグでリビルドして実行してエラーの詳細とエラーを起こした箇所を教えてください。
もしかしたらリリースビルドでしか出ないエラーかもしれませんが、それでも状況を教えてください。

それと「システムの復元」で戻るのはシステムの部分なので自分でコピーした「プロジェクトに追加すべきファイル_VC用」はもとに戻りません。

[追記]
過去のやりとりを見ましたが、よく理解せずに強引にねじ伏せている可能性が高い様に思われます。
最新のコードを貼っていただいたほうが良いでしょう。

Re: バージョンが違うdxlibを

Posted: 2011年5月24日(火) 17:04
by small
ご回答ありがとうございます。

>>つまり、バグを取らないといけません。
>>デバッグビルドすると細かいエラーが出ると思いますので、デバッグでリビルドして実行してエラーの詳細とエラーを起こした箇所を教えてくださ>>い。

デバッグ、ビルド、リビルドなどやってみて、問題の点がわかりました。

デバッグすると、
int StartTimer = GetNowCount();
ココで問題点が発生したため・・・ というエラーがでます。

デバッグするとでるエラー:
chap4.exe の 0x00000000 で初回の例外が発生しました: 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。
chap4.exe の 0x00000000 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。

でした、色々調べてみたところ、ポインタどうたらと書いてありました。
良く分からないので、デバッグが止まってしまう箇所を削除して実行してみたところ、正常に出来ました。

そこで、
int StartTimer; 
そして、 その後に
StartTimer = GetNowCount();
としてみたところ、正常にデバッグできました。
いまいちなにが原因なのかわからないのですが、デバッグできたので、解決・・・ とします。
本当にありがとうございました。

システムの復元について、詳しく解説していただきありがとうございます。
今までシステムの復元は万能だと思ってました。

強引にねじ伏せてる感が否めないですが・・・一応コレで解決にします。

Re: バージョンが違うdxlibを

Posted: 2011年5月24日(火) 17:21
by softya(ソフト屋)
small さんが書きました:そこで、
int StartTimer; 
そして、 その後に
StartTimer = GetNowCount();
としてみたところ、正常にデバッグできました。
いまいちなにが原因なのかわからないのですが、デバッグできたので、解決・・・ とします。
本当にありがとうございました。
それが原因とは思えませんので、完全にねじ伏せだと思いますよ。
何かのタイミングでバグが再現しないとは限りませんので時間がある限り調べるべきだと思います。

Re: バージョンが違うdxlibを

Posted: 2011年5月24日(火) 18:12
by ISLe
GetNowCountってDxLib_Initしたあとに呼び出さないとダメですよね。
むかしはそうじゃなかったのでしょうか。
それがアクセス違反の原因か分からないですけど。