Visual Studio Community 2019、 Dxライブラリを使ってリズムゲームを作成しています。
初心者でソリューションのビルドについてあまり理解できておらず、質問が見当違いかもしれませんがお付き合いください。
ソリューション構成をdebugにしてもreleaseにしてもきちんと動作することが確認できたので試しにリリース版の実行形式でビルドしてみようと思い「ビルド(B)」→「ソリューションのビルド(B)」を選択しソリューションをビルドしました。
「(ソリューションが保存されているフォルダ)」→「Release」フォルダ内にプログラムで使う音楽ファイルなどをコピーし、生成された.exeファイルを実行したのですが、起動はするものの途中の処理が正常に行われませんでした。
LogFileAdd関数などを使って実行状況を確認してみたところ、途中までは正常に実行されているようです。
具体的には、Dxlib_init()を呼んだ後ProcessMessage()が0を返す間ループをさせていて、このループ内でUpdate()関数を呼び出した後この処理にかかった時間を用いて60FPSで動作するようSleep()で調整しているのですが、
Update()の先頭までは正常に動作しています。しかし、Update()の後半でリズムゲームの各ノーツに対して行っている処理が実行されていません。
void Update(){
処理1(); //実行される
for(すべてのノーツ){
処理2; //実行されない
}
}
このような状態です。(forループ内までには入っているようです)
Visual Studioからデバッグした際にはソリューション構成をdebugにしてもreleaseにしても何のエラーも吐かず意図したとおりの挙動をしているので文法などの初歩的なミスはしていないと思います。
Log.txtにも見たところエラーは出ていないようなので原因がわからず困っています。
・描画にはDrawCircleAA関数を使っているので画像ファイルの読み込みなどの問題ではないと思います。
・LoadSoundMemで読みこんんだ音楽の再生もうまくいっており、プログラムが強制終了していることもありません。
・Dxライブラリのリファレンスで紹介されているような簡単なサンプルプログラムではビルドして生成した.exeファイルを実行した場合は正常に動作したのでプログラムの問題だと思います。
・Visual Studioでのエラーは0、警告はいくつか出ていますがすべてfloatからintなどへのキャストを暗黙的にさせてしまっていることへの警告で無関係だと思います。
このようにデバッグでは問題なく実行できるのにビルドしたものが正常に動作しない、というのはどのような原因が考えられるのでしょうか?(長くなると思いソースファイルを貼っていないのでピンポイントでご指摘いただくのは難しいと思いますが、一般的にありうる原因などを教えていただけるとありがたいです)