DxLibFan DownLoad



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言語で記述!?されているのでタブン使いやすいかと^^;
int DxLibScreenSaverInit(
    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!?


DxLibFanに戻る DxLibのダウンロードは以下から
Dxライブラリ置き場
DxLib Copyright(C) 山田 巧

The program using DxLib.
The text of this page.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送