メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcDefined.h

#include <stdio.h>
#include <stddef.h>

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

Include dependency graph

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

Included by dependency graph

ソースコードを見る。

構成

struct  dkc_Allocator

マクロ定義

#define DKINGYO_ULONGLONG_MAX   18446744073709551615
 ULONGLONGの変数のマックス値(最大値).

#define DKINGYO_LONGLONG_MAX   9223372036854775807
 LONGLONGの変数のマックス値(最大値).

#define DKINGYO_LONGLONG_MIN   -9223372036854775808
 LONGLONGの変数のミン値(最小値).

#define DKUTIL_EXTERN   extern
 extern...

#define DKINGYO_NOT_MOUNTED   -100
 メンバ関数が定義されていない時に返す変数

#define DKINGYO_NO_DEFINED_FUNCTION   DKINGYO_NOT_MOUNTED
 DKINGYO_NOT_MOUNTEDと同じ.

#define DKUTIL_SUCCEEDED(s)   (s==edk_SUCCEEDED)
#define DKUTIL_FAILED(s)   (s)
#define DKUTIL_FAILED_BOOL(s)   (s != edk_SUCCEEDED)
#define DKUTIL_SUCCEEDED_BOOL(s)   (s==edk_SUCCEEDED)
#define MB(str)   MessageBox(NULL,str,"Message",MB_OK)
 MessageBoxを表示.

#define MB2(s, title)   MessageBox(NULL,s,title,MB_OK);
 MessageBoxを表示(タイトル指定可能バージョン).

#define ODS(str)   OutputDebugString(str)
 OutputDebugStringを使用.

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

#define SWAP_NUM_EX(a, b, ex)
#define SM_OFFSET(p_type, field)   ((unsigned int)&(((p_type)NULL)->field))
 構造体のオフセットを求める Struct Member Offset

#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_C(VaList, r, buff, buffnum, origin)
#define DKUTIL_SAFE_REALLOC(b, s)   realloc(b,s)
#define DKUTIL_SAFE_MALLOC(s)   malloc(s)
#define DKUTIL_SAFE_FREE(a)   if(a){free(a);a=NULL;}
#define DKUTIL_STRUCTURE_INIT(s)   memset(&(s),0,sizeof(s))
#define DKUTIL_MEMZERO(mem__, size__)   memset(mem__,0,size__)
 ZeroMemory()みたいなもの.

#define DKUTIL_ARRAY_NUMOF(array)   (sizeof(array)/sizeof(array[0]))
 配列の数を数える

#define DKUTIL_NAMELINK(X, Y)   X##Y
 名前を合わせる。

#define DKUTIL_MAKESIGNATURE(X)   DKUTIL_NAMELINK(X,__LINE__)
 シグネチャの名前を作る。

#define DKUTIL_MAKE_UINT_ID(id)
 id[in] example 'abcd' unsigned int

#define DKUTIL_FLAG_DOWN(x, n)   {x &= ~n;}
 http://d.hatena.ne.jp/paserry/ paserry氏に教えていただく。m(_ _)m

#define DKUTIL_FLAG_UP(x, n)   {x |= n;}
 フラグアップマクロ。これは常識。

#define DKUTIL_FLAG_UP_N(x, n)   DKUTIL_FLAG_UP(x,(1 << n))
 UINT系変数の左からNビット目のフラグをアップさせる。.

#define DKUTIL_FLAG_DOWN_N(x, n)   DKUTIL_FLAG_DOWN(x,( 1<<n ))
 DKUTIL_FLAG_UP_N() 左からnビット目のフラグをダウンさせる。.


型定義

typedef void(* VOIDFUNC )(void)
typedef void(* VOIDARGFUNC )(void *)
typedef void(* VOIDARGFUNCFLAG )(void *, int)
typedef dkc_Allocator DKC_ALLOCATOR

列挙型

enum  edkOS {
  enuWindows3_1 = 1, enuWindowsNT3_51, enuWindowsNT4_0, enuWindows95,
  enuWindows98, enuWindows2000, enuWindowsMe, enuWindowsXP,
  enuWindows_NET
}
enum  edkOSExtension {
  edkOSE_OSR2 = 1, edkOSE_edkSE, edkOSE_HomeEditon, edkOSE_Professional,
  edkOSE_DataCenter_Server, edkOSE_Advanced_Server, edkOSE_Enterprise_Server, edkOSE_Web_Server,
  edkOSE_Server
}
enum  {
  enuDKINGYO_BMPFILEHEADER_ADR = 1, enuDKINGYO_BMPCOREHEADER_ADR, enuDKINGYO_BMPINFOHEADER_ADR, enuDKINGYO_BMPPALLETE_ADR,
  enuDKINGYO_BMPGRAPH_ADR, enuDKINGYO_ISBMPFILE_EXACT_CHECK, enuDKINGYO_ISBMPFILE_CAMOUFLAGE_CHECK
}
 画像ファイルを解析する時に使う^^ [詳細]

enum  edkVariableType {
  edkVariableUnknown = 0, edkInt, edkUInt, edkLongLong,
  edkULongLong, edkDouble, edkString
}
 変数のタイプのイナム軍 [詳細]

enum  {
  enuSTRLENGTH_INT_DU = 1, enuSTRLENGTH_UINT_DU, enuSTRLENGTH_LONGLONG_DU, enuSTRLENGTH_ULONGLONG_DU,
  enuSTRLENGTH_DOUBLE
}
 文字列の長さの識別子。 [詳細]

enum  edkFileSignature {
  edkfALL = 0, edkfTXT, edkfHTML, edkfXML,
  edkfAVI, edkfMPEG, edkfMOV, edkfWAV,
  edkfMIDI, edkfMP3, edkfOGG, edkfPNG,
  edkfBMP, edkfTIFF, edkfJPEG, edkfGIF,
  edkfZIP, edkfLZH, edkfGZ, edkfGCA,
  edkfDGC, edkfRAR, edkfSENTINEL
}
 まだ、変わる可能性があるので、あまり使わないで下さい^^; [詳細]

enum  edkResult {
  edk_FAILED = -1, edk_SUCCEEDED = 0, edk_Not_Found, edk_FileNotFound,
  edk_Not_Selected, edk_ArgumentException, edk_ParsingError, edk_LogicError,
  edk_BufferOverFlow, edk_OutputBufferWasLost, edk_InputBufferWasLost, edk_FileSignatureException,
  edk_Not_Satisfactory, edk_Not_Defined_Function, edk_OutOfMemory, edk_EndProcess,
  edk_LogicException, edk_NoValueToProcess, edk_FileCheated_Addition
}
enum  { enuExtendVaListLength = 256, enuDefaultExpandSize = 100 }


マクロ定義

#define DKINGYO_LONGLONG_MAX   9223372036854775807
 

LONGLONGの変数のマックス値(最大値).

dkcDefined.h30 行で定義されています。

#define DKINGYO_LONGLONG_MIN   -9223372036854775808
 

LONGLONGの変数のミン値(最小値).

dkcDefined.h32 行で定義されています。

#define DKINGYO_NO_DEFINED_FUNCTION   DKINGYO_NOT_MOUNTED
 

DKINGYO_NOT_MOUNTEDと同じ.

dkcDefined.h64 行で定義されています。

#define DKINGYO_NOT_MOUNTED   -100
 

メンバ関数が定義されていない時に返す変数

dkcDefined.h62 行で定義されています。

#define DKINGYO_ULONGLONG_MAX   18446744073709551615
 

ULONGLONGの変数のマックス値(最大値).

d金魚

から:
2003/9/13

覚え書き:
C language only
C++にはこんな感じの定義をするものに ios_base ってものが最近ある事を知る。

dkcDefined.h28 行で定義されています。

#define DKUTIL_ARRAY_NUMOF array   )     (sizeof(array)/sizeof(array[0]))
 

配列の数を数える

dkcDefined.h547 行で定義されています。

#define DKUTIL_EXTERN   extern
 

extern...

dkcDefined.h56 行で定義されています。

#define DKUTIL_FAILED  )     (s)
 

dkcDefined.h257 行で定義されています。

参照元 dkcAllocBlowfish(), dkcAllocBuffer(), dkcAllocCircularMemoryStreamCopy(), dkcAllocDeserialize(), dkcAllocNewCircularStream(), dkcAllocSerialize(), dkcAllocSingleList(), dkcAllocStream(), dkcBufferResize(), dkcCircularStreamDump(), dkcCircularStreamZero(), dkcDeserializeRead(), dkcFileCopyEx(), dkcFileWithSignatureCheckCheat(), dkcFileWithSignatureRead(), dkcFreeDeleteCircularStream(), dkcFreeSingleList(), dkcIsEffectivePath(), dkcLZSSEncode(), dkcMemoryStreamAutoExpandResize(), dkcMemoryStreamDynamicWrite(), dkcMemoryStreamResize(), dkcMemoryStreamWrite(), dkcNewSingleList(), dkcOpenFileWithSignature(), dkcPathStringDevideBegin_Logic(), dkcPathStringDevideNext_Logic(), dkcPathStringNormalizeConcatenateLogic(), dkcPathStringNormalizeCopyLogic(), dkcQueueDynamicPush(), dkcSerializeWrite(), dkcSingleListSetBuffer(), dkcStackDynamicPush(), dkcStreamClear(), dkcStringConcatenate(), dkcStringCopy(), dkcStringGetBuffer(), ReadCallback(), と WriteCallback().

#define DKUTIL_FAILED_BOOL  )     (s != edk_SUCCEEDED)
 

dkcDefined.h258 行で定義されています。

#define DKUTIL_FLAG_DOWN x,
 )     {x &= ~n;}
 

http://d.hatena.ne.jp/paserry/ paserry氏に教えていただく。m(_ _)m

dkcDefined.h559 行で定義されています。

参照元 dkcAllocStreamFileType(), dkcAllocStreamMemoryType(), と dkcOpenFileWithSignature().

#define DKUTIL_FLAG_DOWN_N x,
 )     DKUTIL_FLAG_DOWN(x,( 1<<n ))
 

DKUTIL_FLAG_UP_N() 左からnビット目のフラグをダウンさせる。.

dkcDefined.h568 行で定義されています。

#define DKUTIL_FLAG_UP x,
 )     {x |= n;}
 

フラグアップマクロ。これは常識。

dkcDefined.h561 行で定義されています。

参照元 dkcAllocStreamFileType(), dkcAllocStreamMemoryType(), と dkcOpenFileWithSignature().

#define DKUTIL_FLAG_UP_N x,
 )     DKUTIL_FLAG_UP(x,(1 << n))
 

UINT系変数の左からNビット目のフラグをアップさせる。.

dkcDefined.h565 行で定義されています。

#define DKUTIL_MAKE_UINT_ID id   ) 
 

値:

((((UINT)(id) & 0xFF) << 24) |     \
                  (((UINT)(id) & 0xFF00) << 8) |    \
                  (((UINT)(id) & 0xFF0000) >> 8) |  \
                  (((UINT)(id) & 0xFF000000) >> 24))
id[in] example 'abcd' unsigned int

dkcDefined.h553 行で定義されています。

#define DKUTIL_MAKESIGNATURE  )     DKUTIL_NAMELINK(X,__LINE__)
 

シグネチャの名前を作る。

dkcDefined.h551 行で定義されています。

#define DKUTIL_MEMZERO mem__,
size__   )     memset(mem__,0,size__)
 

ZeroMemory()みたいなもの.

dkcDefined.h543 行で定義されています。

参照元 dkcAllocSingleListDeserialize(), と dkcDeleteCircularStream().

#define DKUTIL_NAMELINK X,
 )     X##Y
 

名前を合わせる。

dkcDefined.h549 行で定義されています。

#define DKUTIL_SAFE_FREE  )     if(a){free(a);a=NULL;}
 

dkcDefined.h540 行で定義されています。

#define DKUTIL_SAFE_MALLOC  )     malloc(s)
 

dkcDefined.h539 行で定義されています。

#define DKUTIL_SAFE_REALLOC b,
 )     realloc(b,s)
 

dkcDefined.h538 行で定義されています。

#define DKUTIL_STRUCTURE_INIT  )     memset(&(s),0,sizeof(s))
 

dkcDefined.h541 行で定義されています。

参照元 dkcCreateDirectory().

#define DKUTIL_SUCCEEDED  )     (s==edk_SUCCEEDED)
 

dkcDefined.h256 行で定義されています。

参照元 dkcGetCurrentDirectory(), と dkcQueueDynamicPush().

#define DKUTIL_SUCCEEDED_BOOL  )     (s==edk_SUCCEEDED)
 

dkcDefined.h259 行で定義されています。

参照元 dkcSLOPushBackLogic().

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

MessageBoxを表示.

dkcDefined.h426 行で定義されています。

参照元 dkcErrorMessage().

#define MB2 s,
title   )     MessageBox(NULL,s,title,MB_OK);
 

MessageBoxを表示(タイトル指定可能バージョン).

dkcDefined.h428 行で定義されています。

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

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

dkcDefined.h465 行で定義されています。

参照元 dkcCreateDirectory(), と dkcErrorMessage().

#define ODS str   )     OutputDebugString(str)
 

OutputDebugStringを使用.

dkcDefined.h430 行で定義されています。

参照元 dkcErrorMessage(), dkcFileCopyEx(), End(), と Init().

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

値:

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

dkcDefined.h457 行で定義されています。

#define SET_VA_LIST_C VaList,
r,
buff,
buffnum,
origin   ) 
 

値:

{\
    va_start( VaList , origin ) ;\
    r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
    if(0 > r){\
        buff[buffnum - 1] = '\0';\
    }else{\
        buff[r+1] = '\0';\
    }\
    va_end( VaList ); \
}

dkcDefined.h526 行で定義されています。

参照元 dkcErrorMessage().

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

構造体のオフセットを求める Struct Member Offset

覚え書き:
//example UINT get_offset = SM_OFFSET(_WIN32_FIND_DATA *,dwReserved1);

dkcDefined.h454 行で定義されています。

#define SWAP_NUM a,
 ) 
 

値:

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

dkcDefined.h433 行で定義されています。

参照元 dkcSwap64().

#define SWAP_NUM_EX a,
b,
ex   ) 
 

値:

(ex)a = (ex)(b - a ); \
    (ex)b = (ex)(b - a ); \
    (ex)a = (ex)(a + b )
参照:
SWAP_NUM
引数:
ex[in] 型名・char 等

dkcDefined.h441 行で定義されています。


型定義

typedef struct dkc_Allocator DKC_ALLOCATOR
 

typedef void(* VOIDARGFUNC)(void *)
 

dkcDefined.h276 行で定義されています。

typedef void(* VOIDARGFUNCFLAG)(void *,int)
 

dkcDefined.h277 行で定義されています。

typedef void(* VOIDFUNC)(void)
 

dkcDefined.h275 行で定義されています。


列挙型

anonymous enum
 

画像ファイルを解析する時に使う^^

列挙型の値:
enuDKINGYO_BMPFILEHEADER_ADR 
enuDKINGYO_BMPCOREHEADER_ADR 
enuDKINGYO_BMPINFOHEADER_ADR 
enuDKINGYO_BMPPALLETE_ADR 
enuDKINGYO_BMPGRAPH_ADR 
enuDKINGYO_ISBMPFILE_EXACT_CHECK  isBmpFile()でのflagにぶち込む識別子 Bitmapファイルかどうか正確なチェックを行う。
enuDKINGYO_ISBMPFILE_CAMOUFLAGE_CHECK  isBmpFile()でのflagにぶち込む識別子 偽装ビットマップかどうか調べる。

dkcDefined.h122 行で定義されています。

anonymous enum
 

文字列の長さの識別子。

列挙型の値:
enuSTRLENGTH_INT_DU  INT以内の数.
enuSTRLENGTH_UINT_DU  UINT以内の数.
enuSTRLENGTH_LONGLONG_DU  LONGLONG(__int64)以内の数.
enuSTRLENGTH_ULONGLONG_DU  ULONGLONG( unsigned __int64)以内の数.
enuSTRLENGTH_DOUBLE  だヴる(floatなんていらねぇ(爆))以内の数値?

dkcDefined.h155 行で定義されています。

00155     {
00157     enuSTRLENGTH_INT_DU = 1,//ここは絶対に1ですからね!!いじっちゃダメ!
00159     enuSTRLENGTH_UINT_DU,
00161     enuSTRLENGTH_LONGLONG_DU,
00163     enuSTRLENGTH_ULONGLONG_DU,
00165     enuSTRLENGTH_DOUBLE,
00166 };

anonymous enum
 

列挙型の値:
enuExtendVaListLength  拡張型引数のバッファの追加サイズを指定する
enuDefaultExpandSize  コンテナ系のテンプレートクラスでどのくらいのサイズ(または数)を確保するかを設定する

dkcDefined.h263 行で定義されています。

00263     {
00265     enuExtendVaListLength = 256,
00267     enuDefaultExpandSize = 100,
00268 };

enum edkFileSignature
 

まだ、変わる可能性があるので、あまり使わないで下さい^^;

列挙型の値:
edkfALL 
edkfTXT 
edkfHTML 
edkfXML 
edkfAVI 
edkfMPEG 
edkfMOV 
edkfWAV 
edkfMIDI 
edkfMP3 
edkfOGG 
edkfPNG 
edkfBMP 
edkfTIFF 
edkfJPEG 
edkfGIF 
edkfZIP 
edkfLZH 
edkfGZ 
edkfGCA 
edkfDGC 
edkfRAR 
edkfSENTINEL 

dkcDefined.h169 行で定義されています。

00169                      {
00170     edkfALL = 0,
00171     //テキスト系
00172     edkfTXT,
00173     edkfHTML,
00174     edkfXML,
00175     //ムービー系
00176     edkfAVI,
00177     edkfMPEG,
00178     edkfMOV,
00179     //音系
00180     edkfWAV,
00181     edkfMIDI,
00182     edkfMP3,
00183     edkfOGG,
00184     //画像系
00185     edkfPNG,
00186     edkfBMP,
00187     edkfTIFF,
00188     edkfJPEG,
00189     edkfGIF,
00190     //圧縮系
00191     edkfZIP,
00192     edkfLZH,
00193     edkfGZ,
00194     edkfGCA,
00195     edkfDGC,
00196     edkfRAR,
00197     //最後の印。
00198     edkfSENTINEL,
00199 };

enum edkOS
 

列挙型の値:
enuWindows3_1 
enuWindowsNT3_51 
enuWindowsNT4_0 
enuWindows95 
enuWindows98 
enuWindows2000 
enuWindowsMe 
enuWindowsXP 
enuWindows_NET  WindowsXP??のサーバー.

dkcDefined.h86 行で定義されています。

00086           {//OSのバージョンを取得するための列挙
00087     enuWindows3_1 = 1,
00088     enuWindowsNT3_51,
00089     enuWindowsNT4_0,
00090     enuWindows95,
00091     enuWindows98,
00092     enuWindows2000,
00093     enuWindowsMe,
00094     enuWindowsXP,
00096     enuWindows_NET,
00097 
00098 };

enum edkOSExtension
 

列挙型の値:
edkOSE_OSR2  Windows95 OS R2.
edkOSE_edkSE  Windows98 SE.
edkOSE_HomeEditon  WindowsXP HomeEdition.
edkOSE_Professional  WindowsXP Professional Edition または、NT系のProfessional.
edkOSE_DataCenter_Server  Windows .NETのDataCenter Server.
edkOSE_Advanced_Server  NT系のAdvanced 鯖.
edkOSE_Enterprise_Server 
edkOSE_Web_Server 
edkOSE_Server  NT系の普通のサーバー.

dkcDefined.h101 行で定義されています。

enum edkResult
 

正式版で対応するであろうエラーID類(しかし、対応は未定・・・

覚え書き:
edkはEnum of D Kingyoの略 (爆)
列挙型の値:
edk_FAILED  ともかく、エラーらしい。
edk_SUCCEEDED  見事 成功!!
edk_Not_Found  見つからない。
edk_FileNotFound  ファイルが見つからない。
edk_Not_Selected  選択されなかった。
edk_ArgumentException  引数に適さない値が入っていた。(引数エラー
edk_ParsingError  Parsingできなかった。.
edk_LogicError  内部的にエラーが起こった。
(まだ、その関数を使う準備が出来ていないとか, 起こりえないエラーが起こったとか, 呼び出してはいけないのに呼び出したとか。
edk_BufferOverFlow  バッファをはみ出してしまうので処理を完了できなかった。
edk_OutputBufferWasLost  出力バッファーが足りなくなった。
edk_InputBufferWasLost  入力バッファーが足りなくなった。
edk_FileSignatureException  ファイルのシグネチャが合わない
edk_Not_Satisfactory  エラーではないが、満足な処理はされなかった。意図とした結果は得られないかもしれない。
edk_Not_Defined_Function  この関数の処理は定義されていない
edk_OutOfMemory  メモリが足らなかった
edk_EndProcess  この関数で処理するのはもう終わり
edk_LogicException  別の結果だった。
edk_NoValueToProcess  処理する価値が無い
edk_FileCheated_Addition  ファイルの内容に問題は無いが、冗長なデータが引っ付いている。

dkcDefined.h207 行で定義されています。

00207               {
00209     edk_FAILED = -1,
00211     edk_SUCCEEDED = 0,
00213     edk_Not_Found,
00215     edk_FileNotFound,
00217     edk_Not_Selected,
00219     edk_ArgumentException,
00221     edk_ParsingError,
00222 
00229     edk_LogicError,
00231     edk_BufferOverFlow,
00233     edk_OutputBufferWasLost,
00235     edk_InputBufferWasLost,
00237     edk_FileSignatureException,
00239     edk_Not_Satisfactory,
00241     edk_Not_Defined_Function,
00243     edk_OutOfMemory,
00245     edk_EndProcess,
00247     edk_LogicException,
00249     edk_NoValueToProcess,
00250     //ファイルの内容自体を変化させられた。
00251     //edk_FileCheated_Change,
00253     edk_FileCheated_Addition,
00254 };

enum edkVariableType
 

変数のタイプのイナム軍

列挙型の値:
edkVariableUnknown  わからない。
edkInt  int
edkUInt  UINT.
edkLongLong  LONGLONG.
edkULongLong  ULONGLONG.
edkDouble  double
edkString  std::string

dkcDefined.h135 行で定義されています。

00135                     {
00137     edkVariableUnknown = 0,//これを削除しないこと。この0のままにしておくこと。
00139     edkInt,
00141     edkUInt,
00143     edkLongLong,
00145     edkULongLong,
00147     edkDouble,
00149     edkString,
00150 };


dkutil_cに対してSun Jul 18 22:45:41 2004に生成されました。 doxygen 1.3.6