はじめまして。Def*rai と言います。
プログラム初心者なのですが、エラーとかが起きたらダイアログを出して終了する、みたいなプログラムを書きたいのですが、
どうやって実現出来るのか分かりません。
そもそも、DXライブラリでそんな関数があるのでしょうか?
教えて下さい。
初期化に失敗したらダイアログを表示するには?
Re: 初期化に失敗したらダイアログを表示するには?
ダイアログならWin32 APIのMessageBox関数を使えば表示できます。
終了はメインループからbreakするだけです。
終了はメインループからbreakするだけです。
Re: 初期化に失敗したらダイアログを表示するには?
assertマクロというのも手です
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK
Re: 初期化に失敗したらダイアログを表示するには?
DXライブラリでassertを使うと、DxLib_End関数が呼ばれずに不都合が起きる可能性があると考えられます。新月の獅子 さんが書きました:assertマクロというのも手です
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 初期化に失敗したらダイアログを表示するには?
DxLibの初期化クラスを作って、コンストラクタでDxLib_Init、デストラクタでDxLib_Endを呼ぶ、ってのではダメなんでしょうか。みけCAT さんが書きました:DXライブラリでassertを使うと、DxLib_End関数が呼ばれずに不都合が起きる可能性があると考えられます。新月の獅子 さんが書きました:assertマクロというのも手です
Re: 初期化に失敗したらダイアログを表示するには?
実験してみました。Suikaba さんが書きました:DxLibの初期化クラスを作って、コンストラクタでDxLib_Init、デストラクタでDxLib_Endを呼ぶ、ってのではダメなんでしょうか。みけCAT さんが書きました:DXライブラリでassertを使うと、DxLib_End関数が呼ばれずに不都合が起きる可能性があると考えられます。新月の獅子 さんが書きました:assertマクロというのも手です
assertを使うと、デストラクタは呼ばれません。
#include <cstdio>
#include <cassert>
class testClass {
public:
testClass() {
puts("DxLib_Init");fflush(stdout);
}
~testClass() {
puts("DxLib_End");fflush(stdout);
}
void testFunction() {
puts("testFunction Called");fflush(stdout);
}
};
int main(void) {
int a=0;
testClass tc;
scanf("%d",&a);
tc.testFunction();
assert(a);
tc.testFunction();
return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 初期化に失敗したらダイアログを表示するには?
assertではなく、MessageBoxでメッセージを表示→DxLib_End→ExitProcess
とする関数を自作して使用するのも手です。
実装例 ※テストしていません
条件が偽だったら終了する実装例 ※テストしていません
とする関数を自作して使用するのも手です。
実装例 ※テストしていません
void aboutProgram(void) {
MessageBox(GetMainWindowHandle(),"エラーが発生しました。終了します。","error",MB_OK | MB_ICONSTOP);
DxLib_End();
ExitProcess(0);
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)