バージョンが違うdxlibを

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
small

バージョンが違うdxlibを

#1

投稿記事 by small » 14年前

この前人に質問するのは余り好きではないといったのですが、とても困っているので質問します・・・・

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 14年前

どちらかと言うとバグが表面化しただけで、実はバグを内包していたのでは?と疑ったほうが良いです。
つまり、バグを取らないといけません。
デバッグビルドすると細かいエラーが出ると思いますので、デバッグでリビルドして実行してエラーの詳細とエラーを起こした箇所を教えてください。
もしかしたらリリースビルドでしか出ないエラーかもしれませんが、それでも状況を教えてください。

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

[追記]
過去のやりとりを見ましたが、よく理解せずに強引にねじ伏せている可能性が高い様に思われます。
最新のコードを貼っていただいたほうが良いでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

small

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

#3

投稿記事 by small » 14年前

ご回答ありがとうございます。

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

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

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

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

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

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#4

投稿記事 by softya(ソフト屋) » 14年前

small さんが書きました:そこで、
int StartTimer; 
そして、 その後に
StartTimer = GetNowCount();
としてみたところ、正常にデバッグできました。
いまいちなにが原因なのかわからないのですが、デバッグできたので、解決・・・ とします。
本当にありがとうございました。
それが原因とは思えませんので、完全にねじ伏せだと思いますよ。
何かのタイミングでバグが再現しないとは限りませんので時間がある限り調べるべきだと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

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

#5

投稿記事 by ISLe » 14年前

GetNowCountってDxLib_Initしたあとに呼び出さないとダメですよね。
むかしはそうじゃなかったのでしょうか。
それがアクセス違反の原因か分からないですけど。

閉鎖

“C言語何でも質問掲示板” へ戻る