メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcDefined.h

説明を見る。
00001 
00014 #ifndef DKUTIL_C_DEFINED_H
00015 #define DKUTIL_C_DEFINED_H
00016 
00017 
00018 #include <stdio.h>
00019 #include <stddef.h>
00020 
00021 
00022 //**********************************************************
00023 //ここらへんって32ビット環境依存だから^^;;;;;注意してね^^;;;
00024 //**********************************************************
00025 
00026 //定数を定義する
00028 #define DKINGYO_ULONGLONG_MAX 18446744073709551615 
00029 
00030 #define DKINGYO_LONGLONG_MAX 9223372036854775807 
00031 
00032 #define DKINGYO_LONGLONG_MIN -9223372036854775808 
00033 
00034 /*
00035 
00036 (0xffffffff) unsigned long の最大値 
00037 INT_MAX 2147483647 (signed)  int の最大値 
00038 INT_MIN -2147483647-1 (signed)  int の最小値 
00039 LONG_MAX 2147483647 (signed)  long の最大値 
00040 LONG_MIN -2147483647-1 (signed)  long の最小値 
00041 */
00042 
00043 //**********************************************************
00044 //修飾子の定義
00045 //**********************************************************
00046 
00047 #ifdef __cplusplus
00048 #   define DKUTIL_EXTERN extern "C"
00049 #else
00050 
00051 #   define DKUTIL_EXTERN extern
00052 #endif
00053 
00054 
00055 #ifndef DKC_INLINE
00056 #   if _MSC_VER >= 1100
00057 #       define DKC_INLINE _inline
00058 #   elif defined(__inline)
00059 #       define DKC_INLINE __inline
00060 #   else
00061 #       define DKC_INLINE
00062 #   endif
00063 #endif
00064 
00065 
00066 #ifdef WIN32
00067 #   define DKC_EXPORT __declspec(dllexport)
00068 #   define DKC_IMPORT __declspec(dllimport)
00069 #   ifdef USE_DKC_DLL
00070 #       ifdef DKCDLL_EXPORTS
00071 #           define DKC_EXTERN DKUTIL_EXTERN DKC_EXPORT
00072 #       else
00073 #           define DKC_EXTERN DKUTIL_EXTERN DKC_INPORT
00074 #       endif
00075 #   else
00076 #       ifdef _MSC_VER
00077 #           define DKC_EXTERN DKUTIL_EXTERN DKC_INLINE
00078 #       else
00079 #           define DKC_EXTERN DKUTIL_EXTERN
00080 #       endif
00081 #   endif
00082 #else
00083 #   define DKC_EXPORT
00084 #   define DKC_IMPORT
00085 #   define DKC_EXTERN DKUTIL_EXTERN
00086 #endif
00087 //**********************************************************
00088 //共通の定義
00089 //**********************************************************
00090 
00091 
00092 
00093 
00094 
00096 #define DKINGYO_NOT_MOUNTED -100
00097 
00098 #define DKINGYO_NO_DEFINED_FUNCTION DKINGYO_NOT_MOUNTED
00099 
00100 
00101 
00102 #ifdef _DEBUG
00103 #   ifndef DEBUG
00104 #       define DEBUG
00105 #   endif
00106 #endif
00107 #ifdef _NDEBUG
00108 #   ifndef NDEBUG
00109 #       define NDEBUG
00110 #   endif
00111 #endif
00112 
00113 
00114 //**********************************************************
00115 //識別するための定義
00116 //**********************************************************
00117 
00118 
00119 
00120 enum edkOS{//OSのバージョンを取得するための列挙
00121     enuWindows3_1 = 1,
00122     enuWindowsNT3_51,
00123     enuWindowsNT4_0,
00124     enuWindows95,
00125     enuWindows98,
00126     enuWindows2000,
00127     enuWindowsMe,
00128     enuWindowsXP,
00130     enuWindows_NET,
00131 
00132 };
00133 
00134 
00135 enum edkOSExtension{
00137     edkOSE_OSR2 = 1,
00139     edkOSE_edkSE,
00141     edkOSE_HomeEditon,
00143     edkOSE_Professional,
00145     edkOSE_DataCenter_Server,
00147     edkOSE_Advanced_Server,
00148     edkOSE_Enterprise_Server,
00149     edkOSE_Web_Server,
00151     edkOSE_Server,
00152 
00153 };
00154 
00156 enum{
00157     enuDKINGYO_BMPFILEHEADER_ADR = 1,
00158     enuDKINGYO_BMPCOREHEADER_ADR,
00159     enuDKINGYO_BMPINFOHEADER_ADR,
00160     enuDKINGYO_BMPPALLETE_ADR,
00161     enuDKINGYO_BMPGRAPH_ADR,
00163     enuDKINGYO_ISBMPFILE_EXACT_CHECK,
00165     enuDKINGYO_ISBMPFILE_CAMOUFLAGE_CHECK,
00166 };
00167 
00169 enum edkVariableType{
00171     edkVariableUnknown = 0,//これを削除しないこと。この0のままにしておくこと。
00173     edkInt,
00175     edkUInt,
00177     edkLongLong,
00179     edkULongLong,
00181     edkDouble,
00183     edkString,
00184 };
00185 
00186 
00187 
00189 enum{
00191     enuSTRLENGTH_INT_DU = 1,//ここは絶対に1ですからね!!いじっちゃダメ!
00193     enuSTRLENGTH_UINT_DU,
00195     enuSTRLENGTH_LONGLONG_DU,
00197     enuSTRLENGTH_ULONGLONG_DU,
00199     enuSTRLENGTH_DOUBLE,
00200 };
00201 
00203 enum edkFileSignature{
00204     edkfALL = 0,
00205     //テキスト系
00206     edkfTXT,
00207     edkfHTML,
00208     edkfXML,
00209     //ムービー系
00210     edkfAVI,
00211     edkfMPEG,
00212     edkfMOV,
00213     //音系
00214     edkfWAV,
00215     edkfMIDI,
00216     edkfMP3,
00217     edkfOGG,
00218     //画像系
00219     edkfPNG,
00220     edkfBMP,
00221     edkfTIFF,
00222     edkfJPEG,
00223     edkfGIF,
00224     //圧縮系
00225     edkfZIP,
00226     edkfLZH,
00227     edkfGZ,
00228     edkfGCA,
00229     edkfDGC,
00230     edkfRAR,
00231     //最後の印。
00232     edkfSENTINEL,
00233 };
00234 
00240 enum edk_ProcessSignatures{
00241     edk_NONE_SIGNATURE = 0,
00242 
00243 //圧縮系
00244     edk_LZSS_SIGNATURE = 10,
00245     edk_ZLIB_SIGNATURE,
00246     edk_RLE_PACKBITS_SIGNATURE,
00247     edk_BLOCKSORT_SIGNATURE,
00248 
00249 //暗号化系
00250     edk_BLOWFISH_SIGNATURE = 100,
00251 //その他
00252     //200
00253     //300
00254     //edk_ARRAY_PROCESS_ID_END = USHRT_MAX * 2,
00255 };
00256 
00257 
00258 
00264 enum edkResult{
00266     edk_FAILED = -1,
00268     edk_SUCCEEDED = 0,
00270     edk_Not_Found,
00272     edk_FileNotFound,
00274     edk_Not_Selected,
00276     edk_ArgumentException,
00278     edk_ParsingError,
00279 
00286     edk_LogicError,
00288     edk_BufferOverFlow,
00290     edk_OutputBufferWasLost,
00292     edk_InputBufferWasLost,
00293     //ファイルのシグネチャが合わない
00294     //edk_FileSignatureException,
00296     edk_SignatureException,
00298     edk_Not_Satisfactory,
00300     edk_Not_Defined_Function,
00302     edk_OutOfMemory,
00304     edk_EndProcess,
00306     edk_LogicException,
00308     edk_NoValueToProcess,
00309     //ファイルの内容自体を変化させられた。
00310     edk_FileCheated_Change,
00312     edk_FileCheated_Addition,
00313 };
00314 
00315 #define DKUTIL_SUCCEEDED(s) (s==edk_SUCCEEDED)
00316 #define DKUTIL_FAILED(s) (s)//(s != edk_SUCCEEDED)
00317 #define DKUTIL_FAILED_BOOL(s) (s != edk_SUCCEEDED)
00318 #define DKUTIL_SUCCEEDED_BOOL(s) (s==edk_SUCCEEDED)
00319 //**********************************************************
00320 //デフォルト数の設定用定数の定義
00321 //**********************************************************
00322 enum{
00324     enuExtendVaListLength = 256,
00326     enuDefaultExpandSize = 100,
00327 };
00328 
00329 //**********************************************************
00330 //型定義
00331 //**********************************************************
00332 
00333 //共通型
00334 typedef void (*VOIDFUNC)(void); 
00335 typedef void (*VOIDARGFUNC)(void *);
00336 typedef void (*VOIDARGFUNCFLAG)(void *,int);
00337 
00338 
00339 #if 0
00340         
00341         
00342 
00344 typedef void (*OGG_CALLBACK_DU)(char *ptr,size_t permit_num,size_t offset);
00345 
00346 
00347 //CPUClockオブジェクト?型(実はオブジェクトとクラスの違いがわかってない私。
00348 
00349 typedef BOOL (*ISTYPE_DU)(void);
00350 typedef void (*NAMETYPE_DU)(char *,size_t);
00351 typedef long (*CPUCLOCK_DU)(void);
00352 
00353 typedef struct dCPUInfoObject{
00354     ISTYPE_DU isMMX;
00355     ISTYPE_DU isMMX2;
00356     ISTYPE_DU isSSE;
00357     ISTYPE_DU isSSE2;
00358     ISTYPE_DU is3DNOW;
00359     ISTYPE_DU isE3DNOW;
00360     ISTYPE_DU isFPU;
00361     ISTYPE_DU isTSC;
00362     ISTYPE_DU isCPUID;
00363     CPUCLOCK_DU GetCPUClock;
00364     NAMETYPE_DU CopyCPUName;
00365     NAMETYPE_DU CopyCPUType;
00366     NAMETYPE_DU CopyCPUInfo;
00367 }DKINGYOUTILITY2_CPU_INFO;
00368 
00369 
00370 
00371 
00372 enum edkCSTL{
00373     edkCSTL_push_back = 1,
00374     edkCSTL_push_front,
00375     edkCSTL_insert,
00376 }
00377 
00379 struct dkutil_CSTLContainer{
00381     void *(*begin)(void);
00383     void *(*end)(void);
00385     void *(*next)(int);
00387     void *(*first_data)(void);
00389     void *(*next_data)(int);
00398 
00399     int (*insert)(int flag,void *data,size_t size,const void *priority,size_t priority_size);
00400 };
00401 
00402 //SingleList Object type
00403 
00405 typedef void (*SLIST_PUSH_DU)(size_t,const char *,size_t);
00407 typedef void (*SLIST_POP_DU)(size_t,void);
00409 typedef char *(*SLIST_GET_ITERATOR_DU)(size_t,void);
00411 typedef char *(SLIST_NEXT_DU)(size_t,const char *);
00412 
00414 typedef struct dSingleListObject{
00415     size_t handle;
00416     int (*push_back)(struct dSingleListObject *,const char *,size_t);
00417     int (*push_front)(struct dSingleListObject *,const char *,size_t);
00418     int (*pop_front)(struct dSingleListObject *);
00419     int (*clear)(struct dSingleListObject *);
00420     char *(*begin)(struct dSingleListObject *);
00421     char *(*end)(struct dSingleListObject *);
00422     char *(*next)(struct dSingleListObject *,char *);
00423     int (*destructor)(struct dSingleListObject *);
00424     int (*constructor)(struct dSingleListObject *);
00425     char *(*reference_ptr)(struct dSingleListObject *,char *);
00426     void (*set_size)(struct dSingleListObject *,size_t );
00427 }DKINGYOUTILITY2_SINGLE_LIST;
00428 
00429 
00430 
00431 
00433 enum edkParsedStringType{
00434     enuDU2CSV_STRING = 1,
00436     enuDU2CSV_STRING_32MORE,
00437     enuDU2CSV_INT,
00438     enuDU2CSV_LONGLONG,
00439     enuDU2CSV_ULONGLONG,
00440     enuDU2CSV_DOUBLE,
00441 };
00442 
00444 #define DCSVSTRUCTURE_PERMITSIZE_OFFSET_EXTENTION_NUM 3
00445 
00446 #define DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE 32
00447 
00448 typedef struct dCSVStructure{
00449     size_t x,y;
00450     int datatype;
00451     union{
00452         union{
00453             union{
00454                 char str[DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE];
00455                 size_t permitsize[4];//添え字の3にptrの確保したサイズをぶち込めばいいな!!
00456             };
00457             char *ptr;
00458         };
00459         int i;
00460         LONGLONG ll;
00461         ULONGLONG ull;
00462         double dbl;
00463     };
00464     //size_t access_permit;//本当はstrとptrのunion内に入れたいけど
00465     //ポインタは48BITとかあるらしいので、外部で我慢。
00466     void (*constructor)(struct dCSVStructure *,int,size_t);
00467     void (*destructor)(struct dCSVStructure *);
00468 }DKINGYOUTILITY2_CSV_STRUCTURE;
00469     
00470 #endif
00471     
00472 typedef struct dkc_Allocator{
00473     void (*malloc__)(size_t size);
00474     void (*free__)(void *);
00475     void (*realloc__)(void *,size_t);
00476     void (*zero_memory)(void *,size_t);
00477 }DKC_ALLOCATOR; 
00478     
00479 
00480 //**********************************************************
00481 //dKingyoUtility2と同じ マクロとか
00482 //**********************************************************
00483 
00485 #define MB(str) MessageBox(NULL,str,"Message",MB_OK)//MessageBox
00486 
00487 #define MB2(s,title) MessageBox(NULL,s,title,MB_OK);
00488 
00489 #define ODS(str) OutputDebugString(str)//OutputDebugString
00490 
00492 #define SWAP_NUM(a,b) \
00493     a = b - a ;\
00494     b -= a ;\
00495     a += b 
00496 
00500 #define SWAP_NUM_EX(a,b,ex) \
00501     (ex)a = (ex)(b - a ); \
00502     (ex)b = (ex)(b - a ); \
00503     (ex)a = (ex)(a + b )
00504 
00512 
00513 #define SM_OFFSET(p_type,field)     ((unsigned int)&(((p_type)NULL)->field))
00514 
00516 #define SET_RECT(rect, l, t, r, b) \
00517 {\
00518     rect##.left   = l;\
00519     rect##.top    = t;\
00520     rect##.right  = r;\
00521     rect##.bottom = b;\
00522 }
00523 
00524 #define NULL_CHAR_ARRAY(s) memset((void *)s,0,sizeof(s))
00525 
00526 
00527 
00528 
00529 #ifdef __cplusplus
00530 
00560 
00561 #define SET_VA_LIST(buff,buffnum,origin) \
00562 {\
00563     va_list VaList;\
00564     va_start( VaList , origin ) ;\
00565     int r;\
00566     r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00567     if(0 > r){\
00568         buff[buffnum - 1] = '\0';\
00569     }else{\
00570         buff[r+1] = '\0';\
00571     }\
00572     va_end( VaList ); \
00573 }
00574 
00575 
00576 #   define DKUTIL_SAFE_REALLOC(b,s) ::realloc(b,s)
00577 #   define DKUTIL_SAFE_MALLOC(s) ::malloc(s)
00578 #   define DKUTIL_SAFE_FREE(a) if(a){::free(a);a=NULL;}
00579     
00581 #   define DKUTIL_STRUCTURE_INIT(s) ::memset(&(s),0,sizeof(s))
00582 
00583 #   define DKUTIL_MEMZERO(mem,size) ::memset(mem,0,size)
00584 #else // for c lang
00585 
00586 
00587 
00588 #define DKUTIL_SAFE_REALLOC(b,s) realloc(b,s)
00589 #define DKUTIL_SAFE_MALLOC(s) malloc(s)
00590 #define DKUTIL_SAFE_FREE(a) if(a){free(a);a=NULL;}
00591 #define DKUTIL_STRUCTURE_INIT(s) memset(&(s),0,sizeof(s))
00592 
00593 #   define DKUTIL_MEMZERO(mem__,size__) memset(mem__,0,size__)
00594 #endif
00595 
00596 
00597 #define SET_VA_LIST_C(VaList,r,buff,buffnum,origin) \
00598 {\
00599     va_start( VaList , origin ) ;\
00600     r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00601     if(0 > r){\
00602         buff[buffnum - 1] = '\0';\
00603     }else{\
00604         buff[r+1] = '\0';\
00605     }\
00606     va_end( VaList ); \
00607 }
00608 
00610 #define DKUTIL_ARRAY_NUMOF(array) (sizeof(array)/sizeof(array[0]))
00611 
00612 #define DKUTIL_NAMELINK(X,Y) X##Y
00613 
00614 #define DKUTIL_MAKESIGNATURE(X) DKUTIL_NAMELINK(X,__LINE__)
00615 
00616 #define DKUTIL_MAKE_UINT_ID(id) ((((UINT)(id) & 0xFF) << 24) |     \
00617                   (((UINT)(id) & 0xFF00) << 8) |    \
00618                   (((UINT)(id) & 0xFF0000) >> 8) |  \
00619                   (((UINT)(id) & 0xFF000000) >> 24))
00620 
00622 #define DKUTIL_FLAG_DOWN(x,n) {x &= ~n;}//{(x & n) ? x |= (x^n) : 0;}//{x |= (x^n);}
00623 
00624 #define DKUTIL_FLAG_UP(x,n) {x |= n;}
00625 
00627 
00628 #define DKUTIL_FLAG_UP_N(x,n) DKUTIL_FLAG_UP(x,(1 << n))
00629 
00630 
00631 #define DKUTIL_FLAG_DOWN_N(x,n) DKUTIL_FLAG_DOWN(x,( 1<<n ))
00632 //#define DKUTIL_FLAG_DOWN_N(x,n) {x &= (x^ ( 1<<n ) );}
00633 //#define DKUTIL_FLAG_UP_N(x,n) {x |= (1 << n);}
00634 #endif // end of include once

dkutil_cに対してTue Dec 7 01:09:56 2004に生成されました。 doxygen 1.3.6