今、DXライブラリで簡単なRPGを作成しています。そこで少し疑問に思ったことがあったので質問させていただきます。環境はWindows7,c++,DXライブラリです。0;}このようなコードがあったとします。"Exitが選択された時":についてです。Exitが押された時プログラムを終了したいのですが、その方法として次のようなものが思い浮かびました。1;など、適当な値を返しWinMain関数のメインループを抜けるようにする。方法2:c言語のexit関数を使用して強制的に終了させる。方法1の場合、たとえばtitle関数の中のcalc関数の中の・・・のようにWinMain関数から遠い場合、その都度returnで値を返さなければならないので、コードが汚くならないかなと危惧しています。方法2の場合、DxLib_End関数は呼ばれないので、DXライブラリを使用しているのにいいのかなって思ってしまいます。何か良い方法などありますでしょうか?ご教授よろしくお願いします。私の場合は、メインループのループ条件の中にフラグをめり込んでます。終了処理を行なったあとにフラグをそこで立ててあげます。フラグが立っていればループ条件に当てはまらないためループ終了。すれば、コードは汚くならないんじゃないかな~っと思っています。方法2ですが、それでしたら、exitを呼び出す前にDxLib_Endを呼んでみたらどうかと思います。)あとはgotoでDxLib_Endの前に飛ぶ方法もあるにはあるかと・・・gotoは好きではないですし私的にはおすすめではありませんが。7年前exitでなくDxLib_Endで終了させた方が望ましいと思います。DXライブラリを使用するなら呼ぶ必要があるみたいですから。stateを変更した上でもう一度title関数を呼ぶような処理も一応は終了に繋がる処理といえるのではないでしょうか。実用的な場面は思いつきませんけども。方法1だろうが方法2だろうが結果的に変数stateをExitに変更しなくてはいけないという意味では意味は同じになるような気がします。ちなみにPCのみの思考でいくなら方法2でもいいですが、IPhoneなど他のプラットフォームでは基本的に終了処理は正式な手順を踏んで終了させないといけないため、方法1の正式な終了処理を通すことをお勧めします。汎用制も高まりますし。PCではウインドウズの右上の×印が押された際の処理もあるしで(WindowMessageのCloseWindowみたいなメッセージが飛んでくるみたいな仕様でしたが)Stateだけでは限界があるため、1:Exitフラグみたいなものをtitleやlogoなどどこからも参照できるようにして、それぞれの内部でそのフラグがたったときに、各titleやlogoで使用したメモリを解放後にメインループを抜ける2:titleやlogoの更新関数の返り値で、それぞれexitに値するものが返ってきたらメインループを抜けるなど、いずれにしても各シーンで終了を確実に行わせて、全て解放してからメインループを抜けるという方法をお勧めします。スレッドなんかを使いはじめると、どこのシーンでどのスレッドを使用してなんかを管理してちゃんと終わらせてから終了するというのを実現するには、一番上の階層で管理よりは使用した本人に終わらせてもらうというのが一番ですから。7年前C言語標準ライブラリにatexitという関数があります。この関数を使うと、プログラム終了時に自動で呼び出して欲しい関数を登録することができます。atexitでDxLib_Endを実行するような関数を登録しておけば、exit関数で、またはmain関数からreturnでプログラムが終了したときにDxLib_Endを実行させることができます。7年前みなさま解答ありがとうございます。>パコネコさんフラグというのは便利ですね。それにわかりやすくてよさそうです。>zxcさん確かにDXライブラリを使用するならexit関数よりDxLib_End関数を直接呼んだほうがいいですね。今後のためにも今回の場合は方法1:のようにメインループを抜けるような仕様にしたほうがよさそうですね。>beatleさんこんな関数があるのですか!便利な関数を教えていただいてありがとうございます。今回の場合はパコネコさんのフラグで管理するという方法をとらせていただくことにします。様々な解答をいただき本当にありがとうございました。0;}といった方法です。これなら、WinMainの途中からreturn文で終わろうが、例外が捕捉されずに終わろうが、確実にDxLib_Endが呼ばれます。0);というふうにウィンドウを閉じるメッセージを投げる方法もあります。7年前>たかぎさんコンストラクタとデストラクタという考えでよろしいのでしょうか?それなら確実に呼び出されますし、簡単ですね>ISLeさんこんな関数もあるのですか・・・まだまだ勉強不足ですねいろいろな解答本当にありがとうございます。ミクプラは自由にリンクできます。