DxLibFanに戻る うんちくはいいからさっさとダウンロード 1.デバッグ支援クラスCD_DebugClass
コンストラクタ CD_DebugClass(UINT DispFlag,char *ErrorLogFileName=NULL) 引数: DispFlag DispFlagは以下の引数から指定して渡す。 enuMyLogOutのみ他の定数とビットの排他的ORを指定できます。 例: enuMyLogOut | enuPrintfDx とか enuMessageBox | enuMyLogOut 等 enuPrintfDx DxLibのprintfDxでデバッグ出力を行います。 enuMessageBox MessageBoxで表示します。フルスクリーン時の正常表示は保証できません。 enuOutPutDebugString OutPutDebugStringでデバッグ情報??の欄に書き込みを行います。 enuMyLogOut 自分のエラーログファイルに出力します。 enuErrorLogAdd DxLibのAppLog.txtに出力を行います。あまりオススメしませんが^^; ErrorLogFileName ErrorLogのファイルの名前を設定します。 渡さない場合はデフォルトの名前になります。 bool Init(UINT DispFlag,char *ErrorLogFileName) コンストラクタの内部で呼び出されている元関数です。 明示的にまた初期化したい場合は呼び出してください。 しかし、その後の動作は完璧には保証できるか分かりません。 戻り値 タブンtureで成功 falseで失敗 ログ関係bool InitLog( char *fname ,bool flg=true,char *directory=NULL) ログを初期化(ファイルがあれば内容消去し、ファイルが無ければファイルを作成します。)します。 引数: fname 初期化するファイルの名前を入れます。 flg falseで次のdirectoryを有効にします。 directory ファイルを作成するディレクトリを設定します。カレントディレクトリ外にエラーログを吐き出すときは便利です。しかし、DxLibが吐き出すログも設定したディレクトリに書き出される場合も考えられます。 戻り値 タブンtureで成功 falseで失敗 bool AddLogProto( char *str ,char *fname=NULL) 自分のファイルにLogを吐き出す関数のプロトタイプです。使用は控えたほうがイイです。 引数: str 追加する文字列を渡してください。 fname 書き出すファイル名を指定してください。 戻り値 タブンtureで成功 falseで失敗 bool AddLog( char *str ,... ) 自分のファイルログを吐き出します。 引数: str 追加する文字列を渡してください。 ... 後ろはprintfみたいにintの数字とか渡す為にあります。 例: int a=10; AddLog("入れた数字 = %d",a); 戻り値 タブンtureで成功 falseで失敗 MessageBox関係UINT GetMessageBoxResult(UINT *pointer=NULL) メッセージボックスでデバック情報を表示した場合の戻り値を取得します。 引数: pointer 戻り値と同じです。戻り値を取り忘れる恐れのある方には重宝するでしょう。 実際d金魚自身重宝してます^^; 戻り値 MessageBox関数を実行した後帰る戻り値 bool SetMessageBoxState(HWND hWnd,char *title,UINT type) メッセージボックスで表示するときの引数を設定します。 設定しない場合はデフォルトになります。 引数: hWnd Windowのハンドルです。DxLibの隠れ関数GetMainWindowHandle();を渡すのかNULLでしょう。 title メッセージボックスのタイトルの文字列を渡します。 type 表示タイプを設定します。デフォルトはMB_OKです。 ほかにはMB_YESNO等があります。 各自MSDNで調べてください。 戻り値 タブンtureで成功 falseで失敗 汎用型関数。これを呼び出せ!short dout( char *str,...) これが汎用関数です。コンストラクタやInitに渡したタイプで出力します。 引数: str デバック情報の文字列を渡してください。 ... これは後ろのほうに数字とか無限につなげることができます。 まぁ例を見て頂戴!!!!!( ̄ー ̄; ヒヤリ 例: float a=1.1; dout("a = %f",a); 戻り値 常にtureになっている(爆 |
2.スクリーンセーバー製作ライブラリC言語で記述!?されているのでタブン使いやすいかと^^;
HINSTANCE *hInst, LPSTR *lplpCmdLine, WORD Resorce, DLGPROC lpDialogFunc ); DxLibと一緒に初期化します。必ずこれを呼び出してください。 引数: *hInst WinMainの第一引数をぶち込みます。HINSTANCE hInstanceってやつです。 &hInstanceって感じでぶち込んでください。 (まぁ人によりいろんな名前だけどね^^;デフォルトはこう。よく分からなかったら付属のサンプルソースを見よう^^) *lplpCmdLine WinMainの第三引数をぶち込みます。LPSTR lpCmdLineってやつです。 &lpCmdLineって感じでぶち込んでください。 Resorce スクリーンセイバーの設定時に表示するダイアログのリソースIDを渡します。 リソースってスペル間違っているみたいだけど気にしないでね( ̄ー ̄; ヒヤリ デフォルトプロジェクトのサンプルではIDD_DIALOG1になっています。 lpDialogFunc ダイアログのコールバック関数をぶち込んでください。 サンプルではMyDefDlgProcになっています。 そのまま使用する事をオススメします。 戻り値 私が定義した列挙が戻ってくる。詳細は以下 //モード列挙 enum{ enuSSaverSetDataDialog=1, enuSSaverPreview, enuSSaverFullScreen, enuSSaverChangePasswd }; enuSSaverSetDataDialog 設定ウインドウモードで起動した。 enuSSaverPreview プレビューモードで起動した。(実際帰ってこないみたい^^; enuSSaverFullScreen フルスクリーンで起動した。これが帰ってきたらDxLibの描画関数等を使ってスクリーンセーバーのプログラムを組む。音楽とかムービーももちろん使用できる。 つまり〜^^;すべてのDxLib関数を使用できるって訳よ。 あとエラーログ出したくない場合は int SetOutApplicationLogValidFlag( FALSE ) ; をして下さい。どうぞよろしく^^; (追記:こちら側で上記の関数はデフォルトでFALSEにするようにしました) enuSSaverChangePasswd パスワードチェンジモードで帰ってきた。 実際ライブラリ側で自動で設定するので帰ってきても無視して良い。 サンプル //このサンプルはダウンロードしたファイルの //ScreenSaverLibrary->デフォルトプロジェクトを参考にしています。 #include "nsaverDxlib.h" #include "resource.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int r; r=DxLibScreenSaverInit( &hInstance, &lpCmdLine, IDD_DIALOG1, MyDefDlgProc ); //戻ってきたらDxLib if(r==enuSSaverFullScreen){ WaitKey(); DxLibScreenSaverEnd(); } return 0; } int DxLibScreenSaverEnd(void); DxLibと一緒に終了します。DxLib_Endと使い方は一緒です。 戻り値 DxLib_Endと同じ?だと思うけど^^;無視してよし bool CheckPasswd(bool autoflg); パスワードをチェックする。(内部でマウス処理やキーボード処理も行う。) よってメインループ内にこの関数を呼び出すだけで良い。 引数 autoflg tureにすると、パスワードが一致した際すぐに終了する。 戻り値 tureでパスワード入力成功。 falseでパスワード入力失敗。またはパスワード入力はされなかった、パスワード入力ダイアログを表示しなかった。 bool GetDxLibSaverData(); GetGraphicFileNamePointerやGetMusicFileNamePointerを使用する前に呼び出してください。falseが返るとGetGraphicFileNamePointerやGetMusicFileNamePointerは使用できません。 戻り値 false: GetGraphicFileNamePointerやGetMusicFileNamePointerは使用不可能 true: GetGraphicFileNamePointerやGetMusicFileNamePointerは使用可能 char *GetGraphicFileNamePointer(char **p=NULL); 設定モードで使用したグラフィックファイルPathのポインターを返す。 引数 戻り値と一緒。&で渡す。 戻り値 グラフィックファイルPathの先頭アドレス 注意 GetDxLibSaverDataを呼び出さないのにこの関数を呼び出すと、 グラフィックファイルが設定されてないと帰ってくる値は不明です。 また、DxLibScreenSaverInitでデフォルトのダイアログを渡さないと正常に機能しません。 よってオリジナルに凝る場合はこの関数は無視していいです。 char *GetMusicFileNamePointer(char **p=NULL); 前説明したGetGraphicFileNamePointerとほぼ一緒。 ダイアログで設定した音楽ファイルフルパスの先頭のアドレスを返す。 GetGraphicFileNamePointerと一緒なので説明は省略させてもらう。 void SetTestFunc(BYTE (*f)(void)); デフォルトダイアログを表示したとき”テスト”というボタンがある。 そのボタンを押したときに実行する関数を登録する。 ちなみに登録する関数は引数はvoid戻り値はBYTEと決まっている。 引数 引数はvoid戻り値はBYTEの関数の名前を渡す。(ポインタを渡すらしい) (文字列ではない 詳しくはサンプルにて) 戻り値 ナシ 注意 DxLibScreenSaverInit関数を呼び出す前に呼び出すこと。 サンプル BYTE sample(void){ DrawBox(0,0,600,400,0xffff,TRUE); ScreenFlip(); WaitKey(); DxLibScreenSaverEnd();//必ずこの終了関数を呼び出すこと } SetTestFunc(sample); //タブンこれでOK!? |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||