SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送

dKingyoUtility.h の解説

dKingyoUtility2 final [詳細]

#include <windows.h>
#include <stdio.h>
#include <math.h>
#include <LIMITS.H>
#include <memory.h>
#include <string.h>
#include "dkutilDefinedC.h"

dKingyoUtility.hのインクルード依存関係図

Include dependency graph

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

Included by dependency graph

ソースコードを見る。

マクロ定義

#define DKINGYOUTILITY2_API   __declspec(dllimport)
#define EXTERN_DU2   extern DKINGYOUTILITY2_API
 dKingyoUtility2のDLLから読み出すために必要な修飾子?のEXTERN_DU2 別に気にしないで下さい。

#define VISUALING_LAST_ERROR()
 GetLastError 可視化.

#define DEBUGMB(s)
#define DKINGYO_DEBUG
#define MB(str)   MessageBox(NULL,str,"Message",MB_OK)
 MessageBox.

#define ODS(str)   OutputDebugString(str)
 OutputDebugString.

#define IDIOTICAL_SWAP(a, b)   a^=b^=a^=b
 アホな方法での整数専用スワップ

#define SWAP_NUM(a, b)
 正統派整数、実数専用スワップ

#define STRUCT_MEMBER_OFFSET(p_type, field)   ((unsigned int)&(((p_type)NULL)->field))
 構造体のメンバのオフセットを求める

#define SET_RECT(rect, l, t, r, b)
 RECT構造体にデータを入れる。.

#define NULL_CHAR_ARRAY(s)   memset((void *)s,0,sizeof(s))
 CHARの配列を初期化する。.

#define SET_VA_LIST(buff, buffnum, origin)
 沢山引数をつける関数のサポート^^;

#define dMLCAlloc(s)   dMLCAllocBase(s,__FILE__,__LINE__)
 メモリリークログをとる為のmallocみたいなもの。


Enum

enum  eKeyState { KEY_STATE_FREE = 0, KEY_STATE_PULL, KEY_STATE_PUSH, KEY_STATE_HOLD }
 キーステータス定義 dKeyCheckで使われる列挙 [詳細]


関数

void ERROR_BOX (char *str,...)
 ERROR MESSAGE BOX.

EXTERN_DU2 void BitIsVisualized (char *buff, size_t buffbyte, unsigned int dt)
 ビットを文字列にしてビジュアル化する。

EXTERN_DU2 DINLINE char * GetBOOLeanChar (BOOL set)
EXTERN_DU2 ULONG A16ToUl (const char *s)
 ASCII16進数文字列をint10進数にしてくれるもの.

EXTERN_DU2 void A16ToUll (const char *s, ULONG *upper, ULONG *lower)
EXTERN_DU2 void A16ToUll2 (const char *s, char *ptr)
EXTERN_DU2 int CreateArthimeticProgression (int *array, DWORD num, int a, int d)
EXTERN_DU2 int CreateGeometricProgression (int *array, DWORD num, int a, int r)
EXTERN_DU2 int CreateRandomNumberProgression (int *array, DWORD num, int min, int max, int(*rand_func_callback)(int min_, int max_))
EXTERN_DU2 DINLINE short GetAngle (int mx, int my, int sx, int sy)
 二つの2次元座標から角度を求める。

EXTERN_DU2 int dkingyo_rand_ (int *)
 int *には種値のポインタを渡す。

EXTERN_DU2 DINLINE int dRand (int x, int *seed)
EXTERN_DU2 int dRandDomain (int min, int max, int *seed)
EXTERN_DU2 void OnlyFor_dRandDomainFunc_TheArgumentOfMINAndMaxIsObtainedAsARandomValue (int *min, int *max, int *seed)
 分かる人だけ使ってください。dRandDomainに使う安全な乱数を生成します。(実際、ほぼ意味無し。

EXTERN_DU2 float dCos (float f)
 コサインを求める

EXTERN_DU2 float dSin (float f)
 サインを求める 特徴は dCosにて^^

EXTERN_DU2 int d360To256 (int angle)
 360度単位から256度単位に直してくれる

EXTERN_DU2 double dDegreeToRadian (int angle)
 ディグリーな角度?をラジアンな角度にしてくれる!?

EXTERN_DU2 int dRadianToDegree (double radian)
 ラジアンな角度?をディグリーな角度にしてくれる!?

EXTERN_DU2 float dAngleToCos (int angle)
 
引数:
angle[in] degreeな角度 return sin値


EXTERN_DU2 float dAngleToSin (int angle)
 
引数:
angle[in] dgreeな角度
戻り値:
cos値


EXTERN_DU2 float dGetPAI ()
 
戻り値:
float型のπをゲットする


EXTERN_DU2 double dGetDoublePAI ()
 
戻り値:
double型のπをゲットする


EXTERN_DU2 void dSinCos (long angle, float *pSin, float *pCos)
 AngleToCosとAngleToSinを両方やってくれるもの。.

EXTERN_DU2 void dSRandMT (ULONG seed)
 
引数:
seed[in] 種値を入れる MT法乱数での乱数の初期化


EXTERN_DU2 ULONG dRandMT ()
 
戻り値:
MT法乱数での乱数が帰る。
確か・・・ULONG_MAXくらいまで返せたような気が・・・


EXTERN_DU2 BOOL dSetCurrentDirectory (void)
 カレントディレクトリにセットする。

EXTERN_DU2 int dCurrentDirectoryPlusFileName (char *buff, size_t buffsize, char *fielname)
 カレントディレクトリ+ファイルネームをbuffに詰める。

EXTERN_DU2 int dOpenFileDialog (LPSTR lpFileName, LPSTR lpPath, LPCTSTR lpstrFilter, LPCTSTR lpstrDefExt, HWND hDlg)
 ファイルを開く選択するダイアログを表示する

EXTERN_DU2 int dSaveFileDialog (LPSTR lpFileName, LPSTR lpPath, LPCTSTR lpstrFilter, LPCTSTR lpstrDefExt, HWND hDlg)
 ファイルを保存選択するダイアログを表示する

EXTERN_DU2 int dSaveTextFileDialog (LPSTR lpFileName, LPSTR lpPath, HWND hDlg)
 テキストセーブ用。あとはdSaveFileDialogの説明を見てください。

EXTERN_DU2 int dGetBmpInfo (char *filename, BITMAP *bm)
 ビットマップの構造体をぶっこ抜くBITMAP構造体はMSDNに出ている。

EXTERN_DU2 int isWindowsBmpDU2 (char *array)
 Windows Bitmapかどうか調べる。.

EXTERN_DU2 WORD dGetBmpBitCount (char *array)
 ビットマップのビットカウント(256色なら8 HighColorなら16等々)を調べる

EXTERN_DU2 BOOL isBmpPaletteDU2 (char *array)
 パレットが含まれているかどうか調べる

EXTERN_DU2 char * dGetBmpPalleteAddress (char *array)
 パレットのアドレスを得る。

EXTERN_DU2 char * dGetBmpDataAddress (char *array, int ets)
 欲しいアドレスを得る

EXTERN_DU2 BITMAPINFOHEADER * dGetBmpInfoHeader (char *array)
 BITMAPINFOHEADER部を得る.

EXTERN_DU2 void dIdioticalTransform1 (int width, int height, int inc, void *point, BOOL flag, ULONG *seed)
 大馬鹿な方法で配列を分からなくする。(プログラマがソースを見れば一撃で分かる!説明はしない。使って欲しくないから。

EXTERN_DU2 int dBmpIdioticalEncode1 (int width, int height, int bit, char *bmp, ULONG *seed)
 大馬鹿な方法でBitmapを偽装暗号化する。

EXTERN_DU2 int dBmpIdioticalDecode1 (int width, int height, int bit, char *bmp, ULONG *seed)
 大馬鹿な方法でBitmapを偽装複合化する。 BmpIdioticalEncode1で暗号化したbitmapを複合化するのに必要。

EXTERN_DU2 int dBmpToYourFormat (char *bmpadr, size_t bmpadrsize, char *array, size_t arraysize, short WBMPSig, short OS2Sig)
EXTERN_DU2 int dYourFormatToBmp (char *yourptr, size_t yourptrsize, char *array, size_t arraysize, short WBMPSig, short OS2Sig)
EXTERN_DU2 int dBmpFileToYourFormatFile (char *bmpname, char *wfilename, char *array, size_t arraysize, short WBMPSig, short OS2Sig)
EXTERN_DU2 int dYourFormatFileToBmpFile (char *yourfilename, char *wbmpfilename, char *array, size_t arraysize, short WBMPSig, short OS2Sig)
EXTERN_DU2 int _dGetOSVersion (void)
 OSのバージョンをゲットする。戻り値はenuWindows98等のあのイナム軍を返します。.

EXTERN_DU2 BOOL GetClipboardText (char *pstrMemory, DWORD size)
 クリップボードのテキストをゲットする

EXTERN_DU2 void dGetCharOfTimeUpToMinute (char *buff, size_t buffsize, BOOL Sysflag)
 現在時刻の文字列を得ます

EXTERN_DU2 void dGetCharOfMemoPadTypeTime (char *buff, size_t buffsize)
 日本語版Windowsに標準装備のF5キーを押すと出力される現在の時間を出力します。 後はGetCharOfTimeUpToMinuteの引数と同じです。

EXTERN_DU2 void dGetCharOfSystemTimeAll (char *buff, size_t buffsize)
 システムタイムを詳細まで文字列にします。引数についてはGetCharOfMemoPadTypeTimeを見てください

EXTERN_DU2 void dGetCharOfLocalTimeAllJapanese (char *buff, size_t buffsize)
 ローカルタイム(日本語版Windowsの場合は日本の標準時)を文字列にして詳細にわたって表示します。 文字列内も曜日は日本語なので注意してください。引数についてはGetCharOfMemoPadTypeTimeを見てください。

EXTERN_DU2 UINT dCreateDebugStringTimer ()
 タイマーを生成します。
戻り値:
タイマーのハンドル


EXTERN_DU2 void dDeleteDebugStringTimer (UINT h)
 
引数:
h[in] dCreateDebugStringTimerで得た ハンドルを入れる


EXTERN_DU2 BOOL dSaveBinaryStructureObject (void *data, int size, char *fname, char *mode)
EXTERN_DU2 BOOL dGetBinaryStructureObject (void *data, int size, char *fname, char *mode)
EXTERN_DU2 int SaveWin32APIFile (char *filename, void *filedata, size_t size)
 Win32APIのファイル系関数を使ってセーブ、ロードを行う。.

EXTERN_DU2 int LoadWin32APIFile (char *filename, void *Buffer, size_t size)
EXTERN_DU2 BOOL dGetFileSizeHighLow (char *str, DWORD *GetSizeHigh, DWORD *GetSizeLow)
 ファイルサイズを得る。ロックされたファイルでも得ることが出来るので便利^^;

EXTERN_DU2 DWORD dGetFileSizeMini (char *str)
 ファイルサイズを得る(dGetFileSizeのラッパー)・byte以下のファイル専用

EXTERN_DU2 BOOL dInitLog (char *filename)
 エラーログを初期化する
引数:
filename[in] ファイルの名前


EXTERN_DU2 BOOL dAddLog (char *filename, char *str,...)
 ログを吐く
引数:
filename[in] ファイルネーム
str[in] 吐く文字列


EXTERN_DU2 BOOL dOutputDebugString (char *str,...)
 OutputDebugStringの引数拡張OKバージョン(Debugビルドのみしか機能しません。).

EXTERN_DU2 BOOL dSaveRegData (LPCTSTR lpSubKey, LPCTSTR lpValueName, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
EXTERN_DU2 BOOL dGetRegData (LPCTSTR lpSubKey, LPTSTR lpValueName, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
EXTERN_DU2 BOOL dDeleteValueRegData (LPCTSTR lpSubKey, LPTSTR lpValueName)
EXTERN_DU2 BOOL dDeleteRegData (LPCTSTR lpSubKey)
EXTERN_DU2 void dQuickSort_CharType (int n, char *p)
 char型の変数を降順にクイックソートする。説明は dQuickSort_CharType 参照

EXTERN_DU2 void dQuickSort_UCharType (int n, unsigned char *p)
 unsigned char型の・・・以下同文

EXTERN_DU2 void dQuickSort_IntType (int n, int *p)
 int型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_UIntType (int n, unsigned int *p)
 unsigned int型の・・・以下同文

EXTERN_DU2 void dQuickSort_LongType (int n, long *p)
 long型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_ULongType (int n, unsigned long *p)
 unsigned long型の・・・以下同文

EXTERN_DU2 void dQuickSort_FloatType (int n, float *p)
 float型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_DoubleType (int n, double *p)
 double型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_CharType (int n, char *p)
 char型の変数を昇順にクイックソートする。

EXTERN_DU2 void dQuickSortReverse_UCharType (int n, unsigned char *p)
 unsigned char型の・・・以下同文

EXTERN_DU2 void dQuickSortReverse_IntType (int n, int *p)
 int型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_UIntType (int n, unsigned int *p)
 unsigned int型の・・・以下同文

EXTERN_DU2 void dQuickSortReverse_LongType (int n, long *p)
 long型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_ULongType (int n, unsigned long *p)
 unsigned long型の・・・以下同文

EXTERN_DU2 void dQuickSortReverse_FloatType (int n, float *p)
 float型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_DoubleType (int n, double *p)
 double型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 int dOggFileToWaveFile (char *oggfilename, char *wavefilename)
 OggVorbisのファイルをWaveのファイルに出力してくれる関数。ぶっちゃけこれだけで立派なソフトが出来ますぜ!(笑^^;.

EXTERN_DU2 int dOggFileToWaveFileCallBack (char *oggfilename, char *wavefilename, OGG_CALLBACK_DU callback)
 CALLBACK関数のついたdOggFileToWaveFile().

EXTERN_DU2 int dOggFileToWaveMemory (char *oggfilename, char *buff, size_t buffsize, int wordbit)
int CalcDecodedBuffSize (char *oggfilename, size_t *size, int word)
 dOggFileToWaveMemory()でのbuffに入れるバッファのサイズを計算する

EXTERN_DU2 int dInit_MemoryLeakCheckAllocator (char *title, char *fullpath)
 メモリリークログをとる前に必ず呼び出すこと!!

EXTERN_DU2 void * dMLCAllocBase (size_t size, char *file, UINT line)
 dMLCAlloc()のベース

EXTERN_DU2 void dMLCFree (void *p)
 dMLCAlloc()で確保したメモリは必ずこれ呼び出して開放してください。

EXTERN_DU2 void dMLCFreeLogRelease ()
 すでにメモリリークではないログを削除します。結果、うまくいけば物理メモリ使用量が減ります。

EXTERN_DU2 void dEnd_MemoryLeakCheckAllocator ()
 メモリリークログシステムを終了してメモリリークログを書き出します。 別に呼ばなくても後々、書き出されます。

EXTERN_DU2 int dInit_SingleList (DKINGYOUTILITY2_SINGLE_LIST *)
 DKINGYOUTILITY2_SINGLE_LIST構造体を安全に初期化する.

EXTERN_DU2 int dEnd_SingleList (DKINGYOUTILITY2_SINGLE_LIST *)
 DKINGYOUTILITY2_SINGLE_LIST構造体を安全に終了処理する.

EXTERN_DU2 BOOL dCheckVolumeLabel (char *pLabel, char *pPath,size_t pPathSize)
EXTERN_DU2 BOOL dSetWallPaper (char *pFile, long Type, BOOL IsReboot)
EXTERN_DU2 BOOL dRunApplication (char *pDir, char *pAppName)
EXTERN_DU2 void dOpenBrowser (char *pURL)
EXTERN_DU2 void dGetWindowsDir (char *pDir)
EXTERN_DU2 BOOL dCopyFile (char *pSrc, char *pDst)
EXTERN_DU2 void dDeleteFile (char *pSrc)
EXTERN_DU2 BOOL dEncodeSaveData (char *pFile, void *pData, unsigned long Size)
EXTERN_DU2 BOOL dDecodeLoadData (char *pFile, void *pData, unsigned long Size)
EXTERN_DU2 BOOL dFolderSelect (char *pDir,HWND WindowHandle)
EXTERN_DU2 BOOL dFileOpenDialog (char *pPath, char *pTitle, char *pFilter, char *pExt,HWND WindowHandle)
EXTERN_DU2 BOOL dFileSaveDialog (char *pPath, char *pTitle, char *pFilter, char *pExt,HWND WindowHandle)
EXTERN_DU2 BOOL dCreateLinkFile (char *pShortcutFile, char *pDescription, char *pTargetFile)
EXTERN_DU2 BOOL dGetDesktopFolder (char *pPath)
EXTERN_DU2 void dSetShowIME (BOOL flag)
EXTERN_DU2 BOOL dFileExist (char *pFile)
EXTERN_DU2 BOOL dCreateDirectory (char *pPath)
EXTERN_DU2 void dGetMemorySize (unsigned long *pTotalMem, unsigned long *pFreeMem)
EXTERN_DU2 BOOL dOpenColorDialog (long *pR, long *pG, long *pB,HWND WindowHandle)
EXTERN_DU2 void dGetLocalTime (long *pYear, long *pMonth, long *pWeekDay, long *pDay, long *pHour, long *pMinute, long *pSecond, long *pMilliSecond)
EXTERN_DU2 long dDayOfMonth (long year, long month)
EXTERN_DU2 long dDayOfWeek (long year, long month)
EXTERN_DU2 void dKeyCheck (int *State, unsigned long KeyNo)
EXTERN_DU2 void dChangeEndian (void *pData, unsigned long Bytes)
EXTERN_DU2 BOOL dInitCPU_INFO (DKINGYOUTILITY2_CPU_INFO *)
EXTERN_DU2 BOOL isMMX_DU ()
 
戻り値:
MMXが使えるならばtrue


EXTERN_DU2 BOOL isMMX2_DU ()
 
戻り値:
MMX2が使えるならばtrue


EXTERN_DU2 BOOL isSSE_DU ()
 
戻り値:
SSEが使えるならばtrue


EXTERN_DU2 BOOL isSSE2_DU ()
 
戻り値:
SSE2が使えるならばtrue


EXTERN_DU2 BOOL is3DNOW_DU ()
 
戻り値:
3DNowが使えるならばtrue


EXTERN_DU2 BOOL isE3DNOW_DU ()
 
戻り値:
エンハンスド3DNowが使えるならばtrue


EXTERN_DU2 long dGetCPUClock ()
 
戻り値:
CPUClockがMHz単位で帰ります。(初回呼び出しのみ約1秒かかりますのでご注意ください。


EXTERN_DU2 BOOL isFPU_DU ()
 
戻り値:
FPUが使えるならTRUE


EXTERN_DU2 BOOL isTSC_DU ()
 
戻り値:
TSCが使えるならTRUE


EXTERN_DU2 BOOL isCPUID_DU ()
 
戻り値:
CPUIDが使えるのならばtrue


EXTERN_DU2 void dCopyCPUName (char *buff, size_t buffsize)
 CPUの名前をゲットします。.

EXTERN_DU2 void dCopyCPUType (char *buff, size_t buffsize)
 dCopyCPUName()を見てください。 CPUTypeをゲットします。CPUTypeが未だに何なのかは謎(爆

EXTERN_DU2 void dCopyCPUInfo (char *buff, size_t buffsize)
 dCopyCPUName()を見てください。 CPUの情報を可視化する文字列をbuffに返してくれます。

EXTERN_DU2 int isJMS (const char *str, int nPos)
EXTERN_DU2 char * strtail (const char *strstrstr)
 文字列末尾の文字 '' の位置を返す

EXTERN_DU2 char * GetFileExtension (const char *PathName)
 パス名から、拡張子の開始位置を取得する ファイル名の末尾からファイル名の最後の '.' までを、拡張子と判断する

EXTERN_DU2 void memswap (void *va, void *vb, size_t size)
 va から size バイトの内容と、vb から size バイトの内容を交換する。

EXTERN_DU2 void memreverse (void *array, size_t num, size_t size)
 大きさ size の要素 num 個からなる配列 array の要素を 逆順に並べ替える。

EXTERN_DU2 void memrrotate (void *array, size_t shift, size_t num, size_t size)
 大きさ size の要素 num 個からなる配列 array の要素を 右方向に要素 shift 個分だけ回転移動する。

EXTERN_DU2 void memlrotate (void *array, size_t shift, size_t num, size_t size)
 大きさ size の要素 num 個からなる配列 array の要素を 左方向に要素 shift 個分だけ回転移動する。

EXTERN_DU2 DINLINE int IsLeapYear (int Year)
 閏年(leap year)かどうかを確かめる。

EXTERN_DU2 DINLINE int IsGoodDate (int Year, int Month, int Day)
 
戻り値:
有効な日付であれば真、さもなくば偽を返す


EXTERN_DU2 DINLINE int DaysInMonth (int nYear, int nMonth)
 指定された月の最終日を返す

EXTERN_DU2 DINLINE int IsGregory (int Year, int Month, int Day)
 グレゴリウス歴(Gregorian calendar)の範囲内かどうかを確かめる。

EXTERN_DU2 int gcd (int m, int n)
EXTERN_DU2 int lcm (int m, int n)


解説

dKingyoUtility2 final

作者:
d金魚
日付:
11:12 2003/06/21(初製作日 製作終了日 2003/9/25
覚え書き:
今後はdKingyoUtility3に開発が移ります。皆さん期待してください。
使い方のサンプルとしてはtest.cを見てください。 このライブラリはVisualC++用でc言語でもC++言語でも呼び出すことが出来ます。 また、DevC++で使用できるかを確認した結果、いちおう使用できるみたいです。

使い方

機能概要

更新履歴

dCopyCPUInfo() の格納先バッファの指定容量が256byte以上から270byte以上に変更

2003/09/12

仕様変更

1.インクルードするファイルが増える。

関数追加 SingleListコンテナを追加 dInit_SingleList() dEnd_SingleList()

Bitmap実用的?偽装化を追加 dBmpToYourFormat() dBmpFileToYourFormatFile() dYourFormatToBmp() dYourFormatFileToBmpFile()

2003/09/01 OggVorbisデコーダー搭載 dOggFileToWaveFile() dOggFileToWaveMemory()

CPU情報取得機能搭載 isMMX_DU() is3DNOW_DU() dInitCPU_INFO()

2003/08/24 メモリリークチェッカ機能がちょっとスマートになる。

2003/08/22 メモリリークチェック機能搭載 dMLCAlloc() dMLCFree() dMLCFreeLogRelease() dInit_MemoryLeakCheckAllocator() dEnd_MemoryLeakCheckAllocator() 等。 ログを出力してメモリリークをチェックできます。

6:18 2003/08/20 暗号化ファイル書き出し読み出し dEncodeSaveData() dDecodeLoadData()等 各種ディレクトリ取得 dGetWindowsDir()等 カラー選択ダイアログ dOpenColorDialog() フォルダ選択ダイアログ dFolderSelect() その他、大量の機能追加。 (ぶっちゃけ、LunaSystem.cppから改造したものがほとんど・・・

22:16 2003/08/14

タイマー関数追加 dCreateDebugStringTimer()等 サインコサイン関数追加 dSin() dCos() 等 時間取得関数追加 dGetCharOfTimeUpToMinute()

2003/07/08

dSaveBinaryStructureObject() とdGetBinaryStructureObject() のバグを直す。 原因:

int size この変数はdataのサイズをあらわす fread(data,sizeof(size),1,fp); fwrite(data,sizeof(size),1,fp); とやっていた。よって4バイトしか保存、読み込みがされない。 これは痛い!!

2003/07/07

ビットマップファイルの解析、ちょっとした偽装化 クイックソート MT法乱数

初期版 (03/06/22) ログを吐く ファイル選択ダイアログを表示する。 数列を作る。 沢山の種を保持することの出来る乱数が作れる レジストリ操作 等

本当にチョビッとしたことが出来ると思います。

ライセンス

祝!最終バージョン(しかし、dKingyoUtility3に開発を移すだけですが^^;)なので全部ソースを公開します。
(私が書いたところはかなりクソいので参考にしないように(爆))
LGPLとBSD LicenceとdKingyo Library Licenceのトリプルです。
どれか一つを適用して自由にお使いください。
ライセンスについては d金魚のライセンスの解釈 が参考になれば幸いです。

以下は昔のライセンスです。

2003/07/02現在(以下、今のところ)、d金魚に著作権等、その他、もろもろの権利があるとし、 このDLLを使ったアプリケーションを配布するさい、自由にこのDLLを配布できるとします。 また、今のところソースは公開していません。

しかし、いずれソースは公開します。その時のライセンスとしてはLGPLあたりを予定しています。 ( LGPLはDynamic Linkなら自分のソースを公開しなくて良いと聞いたので・・・ Static Link だと、公開しなくてはならないらしい・・・ 私の解釈ってこれでいいのでしょうか?)

なぜならいずれ、超簡易GUIをサポートする予定で、Fox Toolkitをこのライブラリ内に使う予定だからです。

なので後々にはFox Toolkitとライセンスは同じになるものだと考えていてください。 (しかし、最近になり、検討中・・・)

また、使用条件としては 自己責任に置いて使用することです。製作者本人(d金魚)は どんな事件があったにしても、一切責任をとりません。

謝辞

一部の便利関数群は葉迩倭氏のDirectX9用ライブラリLuna http://www.twin-tail.jp/ のLunaSystem.cppの中身を改造して使用しました。 今まで、ちょっと疑問だったWin32APIの使い方が明確に分かりました。 葉迩倭氏に感謝します。ありがとうございます。

MT法乱数には http://www.emit.jp/mt/mt.html のソースを使いました。 http://www.emit.jp/ MMXを使ってのMT法乱数の生成のプログラムは高速で気に入っています。 SYN氏に感謝します。ありがとうございます。

標準ライブラリに入っていそうで入っていない便利なプログラムを http://www.hidecnet.ne.jp/~sinzan/ 水無瀬の部屋よりソースを使いました。 水無瀬 優 氏に感謝します。ありがとうございます。

参考サイト、参考文献

HPの運営に感謝します。有難うございます。

連絡先、質問等

お気兼ねなく私のHPの掲示板にご質問ください。

HP : http://www3.to/shisui/ E-Mail : 変わる予定があるので私のHPを参照してください。 dKingyoUtility2専用の掲示板があるURL http://r-troops.com/cgibin/bbs/manage.cgi?cmd=town&id=hc0

寄付について d金魚はまだまだ高校生という立場上、非常にお金に困ってます。
地元高校に通っているヴォンヴィー学生です。 学食は高くて未だに利用してません。パンや飲み物を学校で買う余裕がありません。 Cマガジンも年に2回買えるかどうかです。(このまま行くと、年1回も難しい)
なので、もし、「資料代くらい寄付してやるか!」という寛大な方がいらっしゃいましたら 、どうかd金魚まで連絡を・・・
連絡するのが面倒であれば、 Anywareからどうか  寄付していただきたいのです。 よろしく御願いします。  °煖・/pre>

FAQ

Q:開発は終了しましたが、今後もdKingyoUtility2をサポートしますか? A:dKingyoUtility2の使用者は今まで一切のサポートを要求してこないので、 サポートの必要性は無いような気がします。 dKingyoUtility3に開発を移しますので今後はそちらをお使いください。 また、ソースは全部公開していますので、どうぞいじりまくってください。

Q:dKingyoUtility3はどこで手に入りますか? A: 私のホームページ http://www3.to/shisui/ または、 dKingyo Utility Toolkit Project のページ http://dkingyoutility.sourceforge.jp で手に入れることが出来ると思います。


マクロ定義の解説

#define DEBUGMB  ) 
 

#define DKINGYO_DEBUG
 

#define DKINGYOUTILITY2_API   __declspec(dllimport)
 

#define dMLCAlloc  )     dMLCAllocBase(s,__FILE__,__LINE__)
 

メモリリークログをとる為のmallocみたいなもの。

引数:
size[in] 確保するメモリのサイズ(バイト単位)
戻り値:
確保したメモリのアドレス。もちろん失敗の時はmallocと同じ

#define EXTERN_DU2   extern DKINGYOUTILITY2_API
 

dKingyoUtility2のDLLから読み出すために必要な修飾子?のEXTERN_DU2 別に気にしないで下さい。

#define IDIOTICAL_SWAP a,
 )     a^=b^=a^=b
 

アホな方法での整数専用スワップ

#define MB str   )     MessageBox(NULL,str,"Message",MB_OK)
 

MessageBox.

#define NULL_CHAR_ARRAY  )     memset((void *)s,0,sizeof(s))
 

CHARの配列を初期化する。.

#define ODS str   )     OutputDebugString(str)
 

OutputDebugString.

#define SET_RECT rect,
l,
t,
r,
 ) 
 

値:

{\
    rect##.left   = l;\
    rect##.top    = t;\
    rect##.right  = r;\
    rect##.bottom = b;\
}
RECT構造体にデータを入れる。.

#define SET_VA_LIST buff,
buffnum,
origin   ) 
 

値:

va_list VaList;\
    va_start( VaList , origin ) ;\
    _vsnprintf( buff ,buffnum, origin , VaList ) ;\
    va_end( VaList )
沢山引数をつける関数のサポート^^;

後ろの方に沢山引数をつけられるようにするva_listの初期化。
buff = charのバッファ
buffnum = buffのサイズ(バイト単位)
origin = 最初の文字列
例:例えば、普通に書くとこんな感じ。

void ERROR_BOX(char *str,...){ char s[512]; va_list VaList ; va_start( VaList , str ) ; vsprintf( s , str , VaList ) ; va_end( VaList ) ; MessageBox(NULL,s,"ERROR_BOX",MB_OK); } このマクロはこのように使う。 void ERROR_BOX(char *str,...){< char s[512]; SET_VA_LIST(s,512,str); MessageBox(NULL,s,"ERROR_BOX",MB_OK); }
どうだ!!!これでかなり面倒な文が減った!!
引数:
buff [out] 文字列バッファ
buffnum [in] バッファのサイズ(バイト単位
origin [in] 元の文字列

#define STRUCT_MEMBER_OFFSET p_type,
field   )     ((unsigned int)&(((p_type)NULL)->field))
 

構造体のメンバのオフセットを求める

#define SWAP_NUM a,
 ) 
 

値:

a = b - a ;\
    b -= a ;\
    a += b
正統派整数、実数専用スワップ

 
#define VISUALING_LAST_ERROR  ) 
 

値:

{\
  LPVOID lpMsgBuf;\
  FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,\
               NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );\
  ::MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );\
  LocalFree( lpMsgBuf );\
}
GetLastError 可視化.


Enum の解説

enum eKeyState
 

キーステータス定義 dKeyCheckで使われる列挙

Enum 値:
KEY_STATE_FREE  キーはフリー状態
KEY_STATE_PULL  キーは離された瞬間
KEY_STATE_PUSH  キーは押された瞬間
KEY_STATE_HOLD  キーは押され続けている


関数の解説

EXTERN_DU2 int _dGetOSVersion void   ) 
 

OSのバージョンをゲットする。戻り値はenuWindows98等のあのイナム軍を返します。.

OSのバージョンを取得する

//C++でのサンプル C言語で利用するにはint idを関数の最初に宣言してください int id = _dGetOSVersion(); switch(id){ case enuWindows3_1: case enuWindowsNT3_51: case enuWindowsNT4_0: printf("your OS is WinNT4.0 \n"); break; case enuWindows95: printf("Win95 \n"); break; case enuWindows98: printf("Win98 \n"); break; case enuWindows2000: printf("Win2000 \n"); break; case enuWindowsMe: printf("WinME \n"); break; case enuWindowsXP: printf("Win XP \n"); break; default: printf("Unknown OS \n"); break; }
戻り値:
enumのenuWindos98とかenuWindows95とかを返す

EXTERN_DU2 ULONG A16ToUl const char *  s  ) 
 

ASCII16進数文字列をint10進数にしてくれるもの.

引数:
s[in] "0x1234"とか"0xf0f0f0"とか。必ず先頭2文字に0xをつけること。
戻り値:
10進数ULONG型の数を返す。
覚え書き:
0xffffffffよりでかいものは動作は未定義

EXTERN_DU2 void A16ToUll const char *  s,
ULONG *  upper,
ULONG *  lower
 

引数:
s[in] 基本的にA16ToUl()と同じ。
upper[out] 上位4バイト
lower[out] 下位4バイト
覚え書き:
0xffffffffffffffffよりでかい文字列は未定義

EXTERN_DU2 void A16ToUll2 const char *  s,
char *  ptr
 

引数:
s[in] 基本的にA16ToUl()と同じ。
ptr[out] ULONGLONG型の変数をchar *にキャストしてぶち込んでください。
覚え書き:
A16ToUllを見てください。

EXTERN_DU2 void BitIsVisualized char *  buff,
size_t  buffbyte,
unsigned int  dt
 

ビットを文字列にしてビジュアル化する。

引数:
buff [out] 文字列を格納するバッファ
buffbyte [in] バッファのサイズ(バイト単位
dt [in] ビジュアル化したいビット

int CalcDecodedBuffSize char *  oggfilename,
size_t *  size,
int  word
 

dOggFileToWaveMemory()でのbuffに入れるバッファのサイズを計算する

引数:
oggfilename[in] oggのファイルの名前(読み込み
size[out] 予想されるバッファのサイズを返してくれる
word[in] dOggFileToWaveMemory()でwordbitに入れるであろうサイズ(1〜2)で指定
戻り値:
0以外は失敗

EXTERN_DU2 int CreateArthimeticProgression int *  array,
DWORD  num,
int  a,
int  d
 

等差数列
A Arithimetic Series

引数:
array [out] = 配列のポインタを代入
num [in] = 配列の数
a [in] = 初項
d [in] = 公差
戻り値:
最後の配列の中身

EXTERN_DU2 int CreateGeometricProgression int *  array,
DWORD  num,
int  a,
int  r
 

等比数列
A Geometric Series
実装してから思った…テンプレートにすれば良かった(爆)
調和数列も似たようなものだから削除。どうせ使わない。数列関連ってお遊び関数だし…

引数:
array [out] = 配列のポインタを代入
num [in] = 配列の数
a [in] = 初項
r [in] = 公比
戻り値:
最後の配列の中身

EXTERN_DU2 int CreateRandomNumberProgression int *  array,
DWORD  num,
int  min,
int  max,
int(*  rand_func_callback)(int min_, int max_)
 

乱数列 A Random Number Series
どうせ誰も使わないと思うが乱数列を作成補助するやつ
引数の左はmin右がmax…ってかmin<=x<=maxまでを返す関数のポインタをぶち込む。

引数:
array [out] = 配列のポインタを代入
num [in] = 配列の数
min [in] = 乱数の最小値
max [in] = 乱数の最大値
rand_func_callback[in] = ランダム変域を返す関数。
戻り値:
最後の配列の中身

EXTERN_DU2 int d360To256 int  angle  ) 
 

360度単位から256度単位に直してくれる

EXTERN_DU2 BOOL dAddLog char *  filename,
char *  str,
... 
 

ログを吐く

引数:
filename[in] ファイルネーム
str[in] 吐く文字列

EXTERN_DU2 float dAngleToCos int  angle  ) 
 

引数:
angle[in] degreeな角度 return sin値

EXTERN_DU2 float dAngleToSin int  angle  ) 
 

引数:
angle[in] dgreeな角度
戻り値:
cos値

EXTERN_DU2 DINLINE int DaysInMonth int  nYear,
int  nMonth
 

指定された月の最終日を返す

戻り値:
入力された月が不正(1月〜12月の範囲外)であれば0を返す

EXTERN_DU2 int dBmpFileToYourFormatFile char *  bmpname,
char *  wfilename,
char *  array,
size_t  arraysize,
short  WBMPSig,
short  OS2Sig
 

引数:
bmpname[in] Bitmapのファイル名
wfilename[in] 書き出す時のファイル名
覚え書き:
後はBmpToYourFormat()を見てください。(手抜き!?

EXTERN_DU2 int dBmpIdioticalDecode1 int  width,
int  height,
int  bit,
char *  bmp,
ULONG *  seed
 

大馬鹿な方法でBitmapを偽装複合化する。 BmpIdioticalEncode1で暗号化したbitmapを複合化するのに必要。

引数:
width[in] ビットマップの幅
height[in] ビットマップの高さ
bmp[in] ビットマップのドット部分のアドレスを入れる
*seed[in][out] 種値への変数を入れる。 注意事項はBmpIdioticalEncode1での解説を見てください。

EXTERN_DU2 int dBmpIdioticalEncode1 int  width,
int  height,
int  bit,
char *  bmp,
ULONG *  seed
 

大馬鹿な方法でBitmapを偽装暗号化する。

引数:
width[in] ビットマップの幅
height[in] ビットマップの高さ
bmp[in] ビットマップのドット部分のアドレスを入れる
*seed[in][out] 種値への変数を入れる。 Bitmapのファイルの最初の"BM"を変えるのではなく、ドットを完全に分からなくして素人では解析できないようにします。
注意:
seedに入れた値は変わってしまいます。なので元のseed値はしっかり保存していてください。
また、seedに無理やり定数を入れないで下さい。

EXTERN_DU2 int dBmpToYourFormat char *  bmpadr,
size_t  bmpadrsize,
char *  array,
size_t  arraysize,
short  WBMPSig,
short  OS2Sig
 

引数:
bmpadr[in] Bitmapのメモリアドレス(ファイルから読み込んだ全体であること)
bmpadrsize[in] bmpadrのサイズ
array[in] 偽装化(多分バーナム暗号)に使う数列
arraysize[in] arrayのサイズ
WBMPSig[in] WindowsBitmapの時のシグネチャ(識別ID)
OS2Sig[in] OS/2だった時のシグネチャ(識別ID)
戻り値:
-1==ERROR / 0 == SUCCEEDED

EXTERN_DU2 void dChangeEndian void *  pData,
unsigned long  Bytes
 

エンディアンをチェンジします。ビックエンディアンとリトルエンディアンね。
詳しくはGoogleで調べるのが一番速い.

引数:
pData[in] チェンジするデータ
Bytes[in] pDataのサイズ

EXTERN_DU2 BOOL dCheckVolumeLabel char *  pLabel,
char *  pPath,
size_t  pPathSize
 

☆CDのボリュームラベル検索:
任意のボリュームラベルを持つCDを検索します。

引数:
*pLabel[in] : 検索するボリュームラベル
*pPath[in] : 検索対象のボリュームラベルを持つドライブの格納先
戻り値:
BOOL : 成功 true / 失敗 false

EXTERN_DU2 void dCopyCPUInfo char *  buff,
size_t  buffsize
 

dCopyCPUName()を見てください。 CPUの情報を可視化する文字列をbuffに返してくれます。

EXTERN_DU2 void dCopyCPUName char *  buff,
size_t  buffsize
 

CPUの名前をゲットします。.

引数:
buff[in] 文字列の格納先へのポインタ 270byte以上の格納容量が必要です。
buffsize[in] バッファのサイズ

EXTERN_DU2 void dCopyCPUType char *  buff,
size_t  buffsize
 

dCopyCPUName()を見てください。 CPUTypeをゲットします。CPUTypeが未だに何なのかは謎(爆

EXTERN_DU2 BOOL dCopyFile char *  pSrc,
char *  pDst
 

☆ファイルコピー:
ファイルコピーを行います。
ファイル属性が通常になりますので、 CDからコピーされた場合は読取専用が 解除されます。

引数:
*pSrc[in] : コピー元
*pDst[in] : コピー先
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 float dCos float  f  ) 
 

コサインを求める

覚え書き:
内部でテーブルを使っているので高速 な サイン コサイン
しかし、ゲーム製作用としての位置付けなので精度はイマイチ。
ちなみにテーブルのサイズは sizeof(float) * 256 です。
CPUのキャッシュにテーブルがのると メチャクチャ早いはずです。
でも、関数がインライン化されていないのでまぁ、 インラインかしたい場合はこのソースの元を使わないと^^;

EXTERN_DU2 UINT dCreateDebugStringTimer  ) 
 

タイマーを生成します。

戻り値:
タイマーのハンドル

EXTERN_DU2 BOOL dCreateDirectory char *  pPath  ) 
 

☆フォルダ生成フォルダの生成をします。

引数:
*pPath[in] : 生成フォルダパス
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 BOOL dCreateLinkFile char *  pShortcutFile,
char *  pDescription,
char *  pTargetFile
 

☆ショートカット生成:ショートカットを生成します。

引数:
*pShortcutFile[in] : 作成する[*.lnk]のフルパス名
*pDescription[in] : ディスクリプション名
*pTargetFile[in] : リンク元のファイルのフルパス名
戻り値:
BOOL : 成功 true / 失敗 false

EXTERN_DU2 int dCurrentDirectoryPlusFileName char *  buff,
size_t  buffsize,
char *  fielname
 

カレントディレクトリ+ファイルネームをbuffに詰める。

EXTERN_DU2 long dDayOfMonth long  year,
long  month
 

☆1ヶ月の日数を取得1ヶ月の日数を取得します。

引数:
year[in] 
month[in] 
戻り値:
1ヶ月の日数

EXTERN_DU2 long dDayOfWeek long  year,
long  month
 

☆月始めの曜日取得:月始めの曜日を取得します。

引数:
year : 年
month : 月
戻り値:
: 月初めの曜日

EXTERN_DU2 BOOL dDecodeLoadData char *  pFile,
void *  pData,
unsigned long  Size
 

☆データロード:dkutil::SaveDataで保存したデータロードをします。

引数:
*pFile[in] : データ名
*pData[out] : データへのポインタ
Size[in] : データサイズ
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 double dDegreeToRadian int  angle  ) 
 

ディグリーな角度?をラジアンな角度にしてくれる!?

EXTERN_DU2 void dDeleteDebugStringTimer UINT  h  ) 
 

引数:
h[in] dCreateDebugStringTimerで得た ハンドルを入れる

生成したタイマーを削除し、生成されてからの時間(マイクロ秒単位 ( 1秒の1000分の1)をOutputDebugStringで書き込みます。

EXTERN_DU2 void dDeleteFile char *  pSrc  ) 
 

☆ファイル削除:ファイルを削除します。
(ぶっちゃけremoveのらっぱ

引数:
*pSrc[in] : 削除元 / 削除するファイルへのパス

EXTERN_DU2 BOOL dDeleteRegData LPCTSTR  lpSubKey  ) 
 

EXTERN_DU2 BOOL dDeleteValueRegData LPCTSTR  lpSubKey,
LPTSTR  lpValueName
 

EXTERN_DU2 BOOL dEncodeSaveData char *  pFile,
void *  pData,
unsigned long  Size
 

☆データセーブ:
データをちょっと暗号化してセーブをします。
なので、バイナリエディタで開いても一見分かりません。

引数:
*pFile[in] : データ名
*pData[out] : データへのポインタ
Size[in] : データサイズ
戻り値:
成功 true / 失敗 false

EXTERN_DU2 void dEnd_MemoryLeakCheckAllocator  ) 
 

メモリリークログシステムを終了してメモリリークログを書き出します。 別に呼ばなくても後々、書き出されます。

EXTERN_DU2 int dEnd_SingleList DKINGYOUTILITY2_SINGLE_LIST  ) 
 

DKINGYOUTILITY2_SINGLE_LIST構造体を安全に終了処理する.

EXTERN_DU2 BOOL dFileExist char *  pFile  ) 
 

☆ファイル存在チェックファイルの存在チェックをします。

引数:
*pFile[in] : チェックするファイル名
戻り値:
存在する=true / 存在しない = false

EXTERN_DU2 BOOL dFileOpenDialog char *  pPath,
char *  pTitle,
char *  pFilter,
char *  pExt,
HWND  WindowHandle
 

☆ファイルオープンダイアログ:ファイルオープンダイアログをだします。

引数:
*pPath[in] : ファイルが格納されるパス
*pTitle[in]: ダイアログのタイトル
*pFilter[in] : 拡張子の指定
*pExt[in] : 拡張子
WindowHandle[in] :Windowのハンドル。(ハンドルが無い場合はNULLでもOK
戻り値:
BOOL : 成功 true / 失敗 false 注意:
dOpenFileDialog()と違い、内部で最後にアクセスしたフォルダのパスを保存しません。
毎回、この関数を呼び出しているソフトのカレントディレクトリを最初に開きます。

EXTERN_DU2 BOOL dFileSaveDialog char *  pPath,
char *  pTitle,
char *  pFilter,
char *  pExt,
HWND  WindowHandle
 

☆ファイルオープンダイアログ:ファイルオープンダイアログをだします。

引数:
*pPath[out] : ファイルが格納されるパス
*pTitle[in] : ダイアログのタイトル
*pFilter[in] : 拡張子の指定
*pExt[in] : 拡張子
WindowHandle[in] :Windowのハンドル。(ハンドルが無い場合はNULLでもOK
戻り値:
BOOL : 成功 true / 失敗 false (キャンセルされた場合もfalse)
覚え書き:
注意:
dSaveFileDialog()と違い、内部で最後にアクセスしたフォルダのパスを保存しません。
毎回、この関数を呼び出しているソフトのカレントディレクトリを最初に開きます。

EXTERN_DU2 BOOL dFolderSelect char *  pDir,
HWND  WindowHandle
 

☆フォルダ選択ダイアログ:フォルダ選択ダイアログをだします。

引数:
*pDir[in] : ディレクトリ格納先
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 BOOL dGetBinaryStructureObject void *  data,
int  size,
char *  fname,
char *  mode
 

引数:
data[out] ファイルのデータのバッファ (void *)にキャストしてぶち込んでください。
size[in] ファイルのデータのバッファサイズ (読み込むサイズ)
fname[in] ファイルの名前
mode[in] オープンモード 詳しくはMSDNのfopen関数を見よ!
戻り値:
true=成功 false=失敗

EXTERN_DU2 WORD dGetBmpBitCount char *  array  ) 
 

ビットマップのビットカウント(256色なら8 HighColorなら16等々)を調べる

引数:
array[in] LoadWin32APIFile等で読み出したビットマップのデータが入っている配列。
戻り値:
ビットカウント(256色なら8 HighColorなら16等々)を返す

EXTERN_DU2 char* dGetBmpDataAddress char *  array,
int  ets
 

欲しいアドレスを得る

引数:
array[in] LoadWin32APIFile等で読み出したビットマップのデータが入っている配列。
ets[in] enuDKINGYO_BMPFILEHEADER_ADR等を入れる。詳しくはdkutil_DataStruct.hに書いている。etsに入れたデータが無かったり、Userがアホな値をetsに入れたらNULL
戻り値:
etsで指定したUserが欲しがっていたアドレス

EXTERN_DU2 int dGetBmpInfo char *  filename,
BITMAP *  bm
 

ビットマップの構造体をぶっこ抜くBITMAP構造体はMSDNに出ている。

EXTERN_DU2 BITMAPINFOHEADER* dGetBmpInfoHeader char *  array  ) 
 

BITMAPINFOHEADER部を得る.

引数:
array[in] LoadWin32APIFile等で読み出したビットマップのデータが入っている配列。
戻り値:
BITMAPINFOHEADERのアドレスを得る。OS/2でもBITMAPCOREHEADER*に強制型キャストすれば大丈夫かもしれない。

EXTERN_DU2 char* dGetBmpPalleteAddress char *  array  ) 
 

パレットのアドレスを得る。

引数:
array[in] LoadWin32APIFile等で読み出したビットマップのデータが入っている配列。
戻り値:
パレットのアドレス。パレットが無かったらNULL

EXTERN_DU2 void dGetCharOfLocalTimeAllJapanese char *  buff,
size_t  buffsize
 

ローカルタイム(日本語版Windowsの場合は日本の標準時)を文字列にして詳細にわたって表示します。 文字列内も曜日は日本語なので注意してください。引数についてはGetCharOfMemoPadTypeTimeを見てください。

EXTERN_DU2 void dGetCharOfMemoPadTypeTime char *  buff,
size_t  buffsize
 

日本語版Windowsに標準装備のF5キーを押すと出力される現在の時間を出力します。 後はGetCharOfTimeUpToMinuteの引数と同じです。

EXTERN_DU2 void dGetCharOfSystemTimeAll char *  buff,
size_t  buffsize
 

システムタイムを詳細まで文字列にします。引数についてはGetCharOfMemoPadTypeTimeを見てください

EXTERN_DU2 void dGetCharOfTimeUpToMinute char *  buff,
size_t  buffsize,
BOOL  Sysflag
 

現在時刻の文字列を得ます

現在時刻を得ます

引数:
buff[out] 文字列バッファを指定します
buffsize[in] バッファサイズを入れます
Sysflag[in] trueだとシステムタイム(確か世界標準時)を取得します。
falseだとローカルタイム(日本の場合は日本の標準時)を取得します。 注意:
Windowsの設定により、ローカルタイムは変化するようです。
例えば、日本語版Windowsを使っていても、 スペインの標準時にWindowsを設定していたらそれがバッファ内に反映されると思います。
(テストしていないのでまったく分かりませんが^^;)

EXTERN_DU2 long dGetCPUClock  ) 
 

戻り値:
CPUClockがMHz単位で帰ります。(初回呼び出しのみ約1秒かかりますのでご注意ください。

EXTERN_DU2 BOOL dGetDesktopFolder char *  pPath  ) 
 

☆デスクトップフォルダパス取得:デスクトップフォルダのパスを取得します。

引数:
*pPath[out] : デスクトップフォルダを受け取る文字列ポインタ
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 double dGetDoublePAI  ) 
 

戻り値:
double型のπをゲットする

EXTERN_DU2 BOOL dGetFileSizeHighLow char *  str,
DWORD *  GetSizeHigh,
DWORD *  GetSizeLow
 

ファイルサイズを得る。ロックされたファイルでも得ることが出来るので便利^^;

引数:
str[in] ファイルの名前
GetSizeHigh[out] ファイルサイズの上位ダブルワードを得られます。(4GB以下のファイルだとここは意味をなさない。しかしNULLにすることは出来ない。
GetSizeLow[out] ファイルサイズの下位ダブルワードを得られます。(4GB以下だったらここのみを調べればOK
戻り値:
成功したらtrue 失敗したらfalse

EXTERN_DU2 DWORD dGetFileSizeMini char *  str  ) 
 

ファイルサイズを得る(dGetFileSizeのラッパー)・byte以下のファイル専用

注意:約4GB以下のファイルサイズを得ることが出来る。ULONG_MAX byteですかね?

戻り値:
成功したらファイルサイズを返す。0だとdGetFileSize関数が失敗した,または約4GB以上(ULONG_MAX byte以上)のファイルのことを表す。

EXTERN_DU2 void dGetLocalTime long *  pYear,
long *  pMonth,
long *  pWeekDay,
long *  pDay,
long *  pHour,
long *  pMinute,
long *  pSecond,
long *  pMilliSecond
 

☆ローカル時間取得現在地の時間を取得します。

引数:
*pYear[out] : 西暦を受け取る変数のアドレス
*pMonth[out] : 月を受け取る変数のアドレス
*pWeekDay[out] : 曜日を受け取る変数のアドレス
*pDay[out] : 日を受け取る変数のアドレス
*pHour[out] : 時を受け取る変数のアドレス
*pMinute[out] : 分を受け取る変数のアドレス
*pSecond[out] : 秒を受け取る変数のアドレス
*pMilliSecond[out] : ミリ秒を受け取る変数のアドレス
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 void dGetMemorySize unsigned long *  pTotalMem,
unsigned long *  pFreeMem
 

☆メモリサイズ取得物理メモリのサイズを取得します。

戻り値:
*pTotalMem[out] : 合計メモリ容量を格納するポインタ

*pFreeMem[out] : 空きメモリ容量を格納するポインタ

EXTERN_DU2 float dGetPAI  ) 
 

戻り値:
float型のπをゲットする

EXTERN_DU2 BOOL dGetRegData LPCTSTR  lpSubKey,
LPTSTR  lpValueName,
LPDWORD  lpType,
LPBYTE  lpData,
LPDWORD  lpcbData
 

EXTERN_DU2 void dGetWindowsDir char *  pDir  ) 
 

☆ウィンドウズディレクトリ取得:ウィンドウズのディレクトリを取得します。

引数:
*Dir[in] ウィンドウズのsディレクトリパス格納先

EXTERN_DU2 void dIdioticalTransform1 int  width,
int  height,
int  inc,
void *  point,
BOOL  flag,
ULONG *  seed
 

大馬鹿な方法で配列を分からなくする。(プログラマがソースを見れば一撃で分かる!説明はしない。使って欲しくないから。

EXTERN_DU2 int dInit_MemoryLeakCheckAllocator char *  title,
char *  fullpath
 

メモリリークログをとる前に必ず呼び出すこと!!

引数:
title[in] メモリリークログはHTMLで出力されるのでそのタイトル
fullpath[in] メモリリークログを吐き出すパス。必ずフルパス指定にしてください。
戻り値:
成功したら0
覚え書き:
必ず、dMLCAlloc()等を呼び出す前に実行してください。
いちおう、dMLCAlloc()はこれを呼び出さなくてもログを吐くように設計されてますが、 ログを吐くディレクトリがまったく予想していないところに吐き出されるかもしれません。 気をつけてください。
また、dEnd_MemoryLeakCheckAllocator()を呼んで、メモリリークログシステムを終了させた場合、 もう一回 使いたい場合は、この関数を呼び出さなければなりません。

EXTERN_DU2 int dInit_SingleList DKINGYOUTILITY2_SINGLE_LIST  ) 
 

DKINGYOUTILITY2_SINGLE_LIST構造体を安全に初期化する.

EXTERN_DU2 BOOL dInitCPU_INFO DKINGYOUTILITY2_CPU_INFO  ) 
 

EXTERN_DU2 BOOL dInitLog char *  filename  ) 
 

エラーログを初期化する

引数:
filename[in] ファイルの名前

EXTERN_DU2 void dKeyCheck int *  State,
unsigned long  KeyNo
 

文字コード取得:キーで入力された 与えられた文字の文字コードを取得します

引数:
*pKey : キーデータ格納先
KeyNo : 調べるキー番号

EXTERN_DU2 int dkingyo_rand_ int *   ) 
 

int *には種値のポインタを渡す。

EXTERN_DU2 void* dMLCAllocBase size_t  size,
char *  file,
UINT  line
 

dMLCAlloc()のベース

EXTERN_DU2 void dMLCFree void *  p  ) 
 

dMLCAlloc()で確保したメモリは必ずこれ呼び出して開放してください。

EXTERN_DU2 void dMLCFreeLogRelease  ) 
 

すでにメモリリークではないログを削除します。結果、うまくいけば物理メモリ使用量が減ります。

EXTERN_DU2 int dOggFileToWaveFile char *  oggfilename,
char *  wavefilename
 

OggVorbisのファイルをWaveのファイルに出力してくれる関数。ぶっちゃけこれだけで立派なソフトが出来ますぜ!(笑^^;.

引数:
oggfilename[in] OggVorbisのファイルの名前(元・
wavefilename[in] Waveのファイルの名前(先=j
戻り値:
0以外は失敗だと思う

EXTERN_DU2 int dOggFileToWaveFileCallBack char *  oggfilename,
char *  wavefilename,
OGG_CALLBACK_DU  callback
 

CALLBACK関数のついたdOggFileToWaveFile().

引数:
oggfilename[in] dOggFileToWaveFile()を参照
wavefilename[in] dOggFileToWaveFile()を参照
callback[in] コールバック関数を入れる。詳しくは”覚書き”参照
覚え書き:
ファイル名はフルパスOKだったはず。(大体のdKingyoUtility2の関数はすべてフルパスOKなはず) 例:(かなりしょぼいけど)
static void callbackogg(char *a,size_t permit_num,size_t offset) { static BOOL lf=FALSE; ULONG *ulp; ULONG uldecoded_size; ULONG ulall_size; LONGLONG *llp; LONGLONG lldecoded_size; LONGLONG llall_size; LONGLONG per10;

ulp=NULL; llp=NULL;

if(permit_num > 1){ return;//なんか仕様が変わっているらしい } switch(offset) { case 4://sizeof(ULONG): ulp=(ULONG *)a; uldecoded_size=ulp[0]; ulall_size = ulp[1]; break; case 8://sizeof(ULONGLONG) llp=(ULONGLONG *)a; lldecoded_size=llp[0]; llall_size = llp[1]; break; default: MB("//other offset... are you win32 ??"); break; } if(ulp) { per10 = ulall_size / 10;

if(per10 * 9 < uldecoded_size && lf==FALSE) { lf=TRUE; MB("90 % くらい 終了"); } }else if(llp) { per10 = llall_size / 10; if(per10 * 9 < lldecoded_size && lf==FALSE) { lf=TRUE; MB("90 % くらい 終了"); } } }

void TestOggVorbisDecode(){ //宣言 int r; char FileName[MAX_PATH]; char SaveName[MAX_PATH]; char PathName[MAX_PATH]; char *oggfilter="ogg(*.ogg)*.ogg"; char *wavfilter="wav(*.wav)*.wav"; char *ogg_explanation="OggVorbisのファイルを選択して"; char *wav_explanation="Waveのファイルの名前を決めて!";

//ファイルを開く選択するダイアログを表示する r = dOpenFileDialog( FileName,PathName, oggfilter,ogg_explanation, NULL);

if(0 != r){ return; }

NULL_CHAR_ARRAY(SaveName); NULL_CHAR_ARRAY(PathName);//(変数の再利用ってあまりよくないって聞くけど^^;

r = dSaveFileDialog(SaveName,PathName,wavfilter,wav_explanation,NULL);

if(0 != r){ return; }

r = dOggFileToWaveFile(FileName,SaveName,callbackogg); if(r != 0){ MB("ERROR!?"); } }

EXTERN_DU2 int dOggFileToWaveMemory char *  oggfilename,
char *  buff,
size_t  buffsize,
int  wordbit
 

引数:
oggfilename[in] OggVorbisのファイルの名前(元・
buff[out] バッファへのポインタをぶち込む
buffsize[in] バッファのサイズ
wordbit[in] Oggの量子化ビット数らしい(1〜2を指定(別にアホ値を入れても内部で丸めてくれるけど^^;))
戻り値:
0以外は失敗
覚え書き:
メモリ領域はWaveFile化されたメモリです。
なので、そのメモリ領域をファイルにダンプすればdOggFileToWaveFile()と同じになります。

EXTERN_DU2 void dOpenBrowser char *  pURL  ) 
 

☆ブラウザ起動:
ブラウザ起動を起動し任意のURLのサイトを開きます。
フォルダのパスを与えるとフォルダを開くこともできます。

引数:
*pURL[in] : 開くURL

EXTERN_DU2 BOOL dOpenColorDialog long *  pR,
long *  pG,
long *  pB,
HWND  WindowHandle
 

☆カラー選択ダイアログカラー選択ダイアログを開き色の取得をします。

引数:
*pR[out] : 赤色格納先アドレス
*pG[out] : 緑色格納先アドレス
*pB[out] : 青色格納先アドレス
WindowHandle[in] :Windowのハンドル。(ハンドルが無い場合はNULLでもOK
成功 true / 失敗 false

EXTERN_DU2 int dOpenFileDialog LPSTR  lpFileName,
LPSTR  lpPath,
LPCTSTR  lpstrFilter,
LPCTSTR  lpstrDefExt,
HWND  hDlg
 

ファイルを開く選択するダイアログを表示する

使い方:
・開く時のダイアログはdOpenFileDialog関数を呼び出す。
・保存する時のダイアログはdSaveFileDialog関数を呼び出す。

引数:
lpFileName[out] = ファイル名を格納するバッファ。(MAX_PATH = 360文字格納できるバッファである。)
lpPath[out] = パスを格納するバッファ。(こちらも360文字格納できるあるバッファにする)
lpstrFilter[in] = フィルターを設定する。例:"text(*.txt)*.txt files(*.*)*.*"
lpstrDefExt[in] = ファイルの説明?を設定する。例:"text = テキスト文章"
hDlg[in] = 親Windowのハンドルをぶち込む。NULLでも動くかもしれない。(謎 注意:
360文字までのディレクトリパスしか対応してません。

EXTERN_DU2 BOOL dOutputDebugString char *  str,
... 
 

OutputDebugStringの引数拡張OKバージョン(Debugビルドのみしか機能しません。).

EXTERN_DU2 void dQuickSort_CharType int  n,
char *  p
 

char型の変数を降順にクイックソートする。説明は dQuickSort_CharType 参照

引数:
n[in] ソートする配列の数
p[in][out] ソートする配列 特徴:関数のスタックが溢れる事はありません。

EXTERN_DU2 void dQuickSort_DoubleType int  n,
double *  p
 

double型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_FloatType int  n,
float *  p
 

float型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_IntType int  n,
int *  p
 

int型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_LongType int  n,
long *  p
 

long型の変数を降順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSort_UCharType int  n,
unsigned char *  p
 

unsigned char型の・・・以下同文

EXTERN_DU2 void dQuickSort_UIntType int  n,
unsigned int *  p
 

unsigned int型の・・・以下同文

EXTERN_DU2 void dQuickSort_ULongType int  n,
unsigned long *  p
 

unsigned long型の・・・以下同文

EXTERN_DU2 void dQuickSortReverse_CharType int  n,
char *  p
 

char型の変数を昇順にクイックソートする。

引数:
n[in] ソートする配列の数
p[in][out] ソートする配列 特徴:関数のスタックが溢れる事はありません。

EXTERN_DU2 void dQuickSortReverse_DoubleType int  n,
double *  p
 

double型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_FloatType int  n,
float *  p
 

float型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_IntType int  n,
int *  p
 

int型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_LongType int  n,
long *  p
 

long型の変数を昇順にクイックソートする。説明は dQuickSortReverse_CharType 参照

EXTERN_DU2 void dQuickSortReverse_UCharType int  n,
unsigned char *  p
 

unsigned char型の・・・以下同文

EXTERN_DU2 void dQuickSortReverse_UIntType int  n,
unsigned int *  p
 

unsigned int型の・・・以下同文

EXTERN_DU2 void dQuickSortReverse_ULongType int  n,
unsigned long *  p
 

unsigned long型の・・・以下同文

EXTERN_DU2 int dRadianToDegree double  radian  ) 
 

ラジアンな角度?をディグリーな角度にしてくれる!?

EXTERN_DU2 DINLINE int dRand int  x,
int *  seed
 

引数:
x[in] 乱数の0からxまでの範囲
seed[in][out] 種値のポインタを渡す。

EXTERN_DU2 int dRandDomain int  min,
int  max,
int *  seed
 

引数:
min[in] 発生させる乱数の最小値
max[in] 発生させる乱数の最大値
seed[in][out] 種値のポインタを渡す。

EXTERN_DU2 ULONG dRandMT  ) 
 

戻り値:
MT法乱数での乱数が帰る。
確か・・・ULONG_MAXくらいまで返せたような気が・・・

EXTERN_DU2 BOOL dRunApplication char *  pDir,
char *  pAppName
 

☆他のアプリケーションを起動

引数:
*pDir[in] : ディレクトリ名
*pAppName[in]: アプリケーション名
戻り値:
成功 true / 失敗 false

EXTERN_DU2 BOOL dSaveBinaryStructureObject void *  data,
int  size,
char *  fname,
char *  mode
 

fopen等のファイル系関数を使ってセーブ、ロードを行う。

引数:
data[in] ファイルのデータへのポインタ(void *)にキャストしてぶち込んでください。
size[in] ファイルのデータのサイズ (書き込むサイズ)
fname[in] ファイルの名前
mode[in] オープンモード 詳しくはMSDNのfopen関数を見よ!
戻り値:
true=成功 false=失敗

EXTERN_DU2 int dSaveFileDialog LPSTR  lpFileName,
LPSTR  lpPath,
LPCTSTR  lpstrFilter,
LPCTSTR  lpstrDefExt,
HWND  hDlg
 

ファイルを保存選択するダイアログを表示する

EXTERN_DU2 BOOL dSaveRegData LPCTSTR  lpSubKey,
LPCTSTR  lpValueName,
DWORD  dwType,
CONST BYTE *  lpData,
DWORD  cbData
 

EXTERN_DU2 int dSaveTextFileDialog LPSTR  lpFileName,
LPSTR  lpPath,
HWND  hDlg
 

テキストセーブ用。あとはdSaveFileDialogの説明を見てください。

EXTERN_DU2 BOOL dSetCurrentDirectory void   ) 
 

カレントディレクトリにセットする。

引数:
handle[in] 開放するdCreateMTRandで得た有効なジェネレータのハンドル
戻り値:
謎。(爆^^;

EXTERN_DU2 void dSetShowIME BOOL  flag  ) 
 

☆IME表示設定IME表示の設定をします。

引数:
flag[in] : 使用するならtrue

EXTERN_DU2 BOOL dSetWallPaper char *  pFile,
long  Type,
BOOL  IsReboot
 

☆壁紙設定:壁紙を設定します。

引数:
*pFile[in] : 壁紙に設定するファイル名
Type[in] : 0 中央に表示 / 1 並べて表示 / 2 画面サイズに合わせて拡大表示
IsReboot[in] : 再起動後に有効にする場合 true
戻り値:
: 成功 true / 失敗 false

EXTERN_DU2 float dSin float  f  ) 
 

サインを求める 特徴は dCosにて^^

EXTERN_DU2 void dSinCos long  angle,
float *  pSin,
float *  pCos
 

AngleToCosとAngleToSinを両方やってくれるもの。.

EXTERN_DU2 void dSRandMT ULONG  seed  ) 
 

引数:
seed[in] 種値を入れる MT法乱数での乱数の初期化

EXTERN_DU2 int dYourFormatFileToBmpFile char *  yourfilename,
char *  wbmpfilename,
char *  array,
size_t  arraysize,
short  WBMPSig,
short  OS2Sig
 

引数:
yourfilename[in] あなた専用のフォーマットのファイル名
wbmpfilename[in] ビットマップに書き出す時のファイル名

EXTERN_DU2 int dYourFormatToBmp char *  yourptr,
size_t  yourptrsize,
char *  array,
size_t  arraysize,
short  WBMPSig,
short  OS2Sig
 

引数:
yourptr[in] あなた式のフォーマットファイルのメモリアドレス(ファイルから読み込んだ全体であること)
yourptrsize[in] yourptrのサイズ
array[in] 偽装化(多分バーナム暗号)を解除に使う数列(BmpToYourFormat()に使ったものと同じ物を入れること
arraysize[in] arrayのサイズ
WBMPSig[in] WindowsBitmapの時のシグネチャ(識別ID)(BmpToYourFormat()に使った時のと同じ物にすること
OS2Sig[in] OS/2だった時のシグネチャ(識別ID)(BmpToYourFormat()に使った時のと同じ物にすること
戻り値:
BmpToYourFormat()を見てクレイ!
覚え書き:
BmpToYourFormat()の逆のことをするということを知っていてクレイ!

void ERROR_BOX char *  str,
... 
 

ERROR MESSAGE BOX.

EXTERN_DU2 int gcd int  m,
int  n
 

戻り値:
引数に0がある場合は0を返す。 最大公約数(Greatest Common Divisor)を返す。

EXTERN_DU2 DINLINE short GetAngle int  mx,
int  my,
int  sx,
int  sy
 

二つの2次元座標から角度を求める。

EXTERN_DU2 DINLINE char* GetBOOLeanChar BOOL  set  ) 
 

引数:
set[in] 文字列化したいBOOL値
戻り値:
true か false の入った文字列へのポインタ。

EXTERN_DU2 BOOL GetClipboardText char *  pstrMemory,
DWORD  size
 

クリップボードのテキストをゲットする

クリップボードのテキストをパクル
たまにうまくクリップボードを開けないとき(他のプロセスがクリップボードを使用している時) があるので何度か試すように。
また、pstrMemoryのポインタはGlobalAllocで確保したものにしたほうがいいと噂がある。

引数:
pstrMemory[out] メモリバッファ
size [in] メモリバッファサイズ

EXTERN_DU2 char* GetFileExtension const char *  PathName  ) 
 

パス名から、拡張子の開始位置を取得する ファイル名の末尾からファイル名の最後の '.' までを、拡張子と判断する

EXTERN_DU2 BOOL is3DNOW_DU  ) 
 

戻り値:
3DNowが使えるならばtrue

EXTERN_DU2 BOOL isBmpPaletteDU2 char *  array  ) 
 

パレットが含まれているかどうか調べる

引数:
array[in] LoadWin32APIFile等で読み出したビットマップのデータが入っている配列。
戻り値:
パレットが含まれていたらtrue 違うならfalse

EXTERN_DU2 BOOL isCPUID_DU  ) 
 

戻り値:
CPUIDが使えるのならばtrue

EXTERN_DU2 BOOL isE3DNOW_DU  ) 
 

戻り値:
エンハンスド3DNowが使えるならばtrue

EXTERN_DU2 BOOL isFPU_DU  ) 
 

戻り値:
FPUが使えるならTRUE

EXTERN_DU2 DINLINE int IsGoodDate int  Year,
int  Month,
int  Day
 

戻り値:
有効な日付であれば真、さもなくば偽を返す

有効な日付かどうかを確かめる。
1 <= 月 <= 12
1 <= 日 <= その月の最終日
で有効

EXTERN_DU2 DINLINE int IsGregory int  Year,
int  Month,
int  Day
 

グレゴリウス歴(Gregorian calendar)の範囲内かどうかを確かめる。

戻り値:
1582年10月15日以降であれば真、さもなくば偽を返す

EXTERN_DU2 int isJMS const char *  str,
int  nPos
 

文字列 str の str[nPos] について、

戻り値:
0 …… 1バイト文字
1 …… 2バイト文字の一部(第1バイト)
2 …… 2バイト文字の一部(第2バイト)

シフトJIS文字列の判定をします。

EXTERN_DU2 DINLINE int IsLeapYear int  Year  ) 
 

閏年(leap year)かどうかを確かめる。

戻り値:
閏年であれば真(TRUE、さもなくば偽(FALSE)を返す

EXTERN_DU2 BOOL isMMX2_DU  ) 
 

戻り値:
MMX2が使えるならばtrue

EXTERN_DU2 BOOL isMMX_DU  ) 
 

戻り値:
MMXが使えるならばtrue

EXTERN_DU2 BOOL isSSE2_DU  ) 
 

戻り値:
SSE2が使えるならばtrue

EXTERN_DU2 BOOL isSSE_DU  ) 
 

戻り値:
SSEが使えるならばtrue

EXTERN_DU2 BOOL isTSC_DU  ) 
 

戻り値:
TSCが使えるならTRUE

EXTERN_DU2 int isWindowsBmpDU2 char *  array  ) 
 

Windows Bitmapかどうか調べる。.

引数:
array[in] LoadWin32APIFile等で読み出したビットマップのデータが入っている配列。
戻り値:
TRUE = Windows Bitmap FALSE= OS/2 Bitmap -1 = Unknown bitmap

EXTERN_DU2 int lcm int  m,
int  n
 

戻り値:
引数に0がある場合は0を返す。 最小公倍数(Least Common Multiple)を返す。

EXTERN_DU2 int LoadWin32APIFile char *  filename,
void *  Buffer,
size_t  size
 

引数:
filename[in] ファイルネーム 例:"sample.txt" 等
filedata[in] ファイルのデータ
size[in] ファイルのデータのサイズ(バイト単位)
戻り値:
実際に読み込んだファイルサイズ

EXTERN_DU2 void memlrotate void *  array,
size_t  shift,
size_t  num,
size_t  size
 

大きさ size の要素 num 個からなる配列 array の要素を 左方向に要素 shift 個分だけ回転移動する。

EXTERN_DU2 void memreverse void *  array,
size_t  num,
size_t  size
 

大きさ size の要素 num 個からなる配列 array の要素を 逆順に並べ替える。

EXTERN_DU2 void memrrotate void *  array,
size_t  shift,
size_t  num,
size_t  size
 

大きさ size の要素 num 個からなる配列 array の要素を 右方向に要素 shift 個分だけ回転移動する。

EXTERN_DU2 void memswap void *  va,
void *  vb,
size_t  size
 

va から size バイトの内容と、vb から size バイトの内容を交換する。

EXTERN_DU2 void OnlyFor_dRandDomainFunc_TheArgumentOfMINAndMaxIsObtainedAsARandomValue int *  min,
int *  max,
int *  seed
 

分かる人だけ使ってください。dRandDomainに使う安全な乱数を生成します。(実際、ほぼ意味無し。

EXTERN_DU2 int SaveWin32APIFile char *  filename,
void *  filedata,
size_t  size
 

Win32APIのファイル系関数を使ってセーブ、ロードを行う。.

引数:
filename[in] ファイルネーム 例:"sample.txt" 等
filedata[in] ファイルのデータ
size[in] ファイルのデータのサイズ(バイト単位)
戻り値:
0以外だったらエラー

EXTERN_DU2 char* strtail const char *  strstrstr  ) 
 

文字列末尾の文字 '' の位置を返す


dKingyoUtility2に対してThu Sep 25 21:43:23 2003に生成されました。 doxygen1.3