トップページ > 記事閲覧
SetDeleteHandleFlagについて
名前:Tir 日時: 2017/08/28 04:39

お世話になります SetDeleteHandleFlag(int Handle, int *DeleteFlag );//ハンドルが削除されたときに−1が設定される変数を登録する 第1引数は説明の通り登録したい変数だと思いますが第2引数は何なのでしょうか? 試しに同じ変数のポインタを入れて以下のプログラムを試してみたのですが #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetGraphMode(640, 480, 16); ChangeWindowMode(true); if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } int sound; int copy; sound = LoadSoundMem("tes.wav"); copy = sound; SetDeleteHandleFlag(sound, &sound); SetDeleteHandleFlag(copy, &copy); DeleteSoundMem(sound); clsDx(); printfDx("sound=%d\ncopy=%d", sound, copy); WaitKey(); // 結果を見るためにキー待ち(『WaitKey』を使用) DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 } 恐らく関数の使い方が間違っているのだと思いますが このプログラムだと何故か-1が返ってきたのは変数copyの方だけでした DeleteSoundMemで削除するのをcopyにしてもcopyの方だけ-1が返ってきました 理想はcopyの方を消すとsoundの方も-1が返ってくるようにしたいのですが可能でしょうか?
メンテ

Page: 1 |

Re: SetDeleteHandleFlagについて ( No.1 )
名前:管理人 日時:2017/08/28 22:37

> 理想はcopyの方を消すとsoundの方も-1が返ってくるようにしたいのですが可能でしょうか? すみません、できません ひとつのハンドルに対して SetDeleteHandleFlag で登録できる 『ハンドルが削除されたときに -1 を代入する int型変数のアドレス』の数はひとつだけです 申し訳ありませんが、copy の方をポインタ変数にする等の方法で対応してください… m(_ _;m #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetGraphMode(640, 480, 16); ChangeWindowMode(true); if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } int sound; int *copy; sound = LoadSoundMem("tes.wav"); copy = &sound; SetDeleteHandleFlag(sound, &sound); DeleteSoundMem(sound); clsDx(); printfDx("sound=%d\ncopy=%d", sound, *copy); WaitKey(); // 結果を見るためにキー待ち(『WaitKey』を使用) DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
メンテ
Re: SetDeleteHandleFlagについて ( No.2 )
名前:Tir(解決) 日時:2017/08/28 23:03

了解です。関数の使い方は合っているみたいですね。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存