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

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 
00235 
00241 enum edkResult{
00243     edk_FAILED = -1,
00245     edk_SUCCEEDED = 0,
00247     edk_Not_Found,
00249     edk_FileNotFound,
00251     edk_Not_Selected,
00253     edk_ArgumentException,
00255     edk_ParsingError,
00256 
00263     edk_LogicError,
00265     edk_BufferOverFlow,
00267     edk_OutputBufferWasLost,
00269     edk_InputBufferWasLost,
00270     //ファイルのシグネチャが合わない
00271     //edk_FileSignatureException,
00273     edk_SignatureException,
00275     edk_Not_Satisfactory,
00277     edk_Not_Defined_Function,
00279     edk_OutOfMemory,
00281     edk_EndProcess,
00283     edk_LogicException,
00285     edk_NoValueToProcess,
00286     //ファイルの内容自体を変化させられた。
00287     edk_FileCheated_Change,
00289     edk_FileCheated_Addition,
00290 };
00291 
00292 #define DKUTIL_SUCCEEDED(s) (s==edk_SUCCEEDED)
00293 #define DKUTIL_FAILED(s) (s)//(s != edk_SUCCEEDED)
00294 #define DKUTIL_FAILED_BOOL(s) (s != edk_SUCCEEDED)
00295 #define DKUTIL_SUCCEEDED_BOOL(s) (s==edk_SUCCEEDED)
00296 //**********************************************************
00297 //デフォルト数の設定用定数の定義
00298 //**********************************************************
00299 enum{
00301     enuExtendVaListLength = 256,
00303     enuDefaultExpandSize = 100,
00304 };
00305 
00306 //**********************************************************
00307 //型定義
00308 //**********************************************************
00309 
00310 //共通型
00311 typedef void (*VOIDFUNC)(void); 
00312 typedef void (*VOIDARGFUNC)(void *);
00313 typedef void (*VOIDARGFUNCFLAG)(void *,int);
00314 
00315 
00316 #if 0
00317         
00318         
00319 
00321 typedef void (*OGG_CALLBACK_DU)(char *ptr,size_t permit_num,size_t offset);
00322 
00323 
00324 //CPUClockオブジェクト?型(実はオブジェクトとクラスの違いがわかってない私。
00325 
00326 typedef BOOL (*ISTYPE_DU)(void);
00327 typedef void (*NAMETYPE_DU)(char *,size_t);
00328 typedef long (*CPUCLOCK_DU)(void);
00329 
00330 typedef struct dCPUInfoObject{
00331     ISTYPE_DU isMMX;
00332     ISTYPE_DU isMMX2;
00333     ISTYPE_DU isSSE;
00334     ISTYPE_DU isSSE2;
00335     ISTYPE_DU is3DNOW;
00336     ISTYPE_DU isE3DNOW;
00337     ISTYPE_DU isFPU;
00338     ISTYPE_DU isTSC;
00339     ISTYPE_DU isCPUID;
00340     CPUCLOCK_DU GetCPUClock;
00341     NAMETYPE_DU CopyCPUName;
00342     NAMETYPE_DU CopyCPUType;
00343     NAMETYPE_DU CopyCPUInfo;
00344 }DKINGYOUTILITY2_CPU_INFO;
00345 
00346 
00347 
00348 
00349 enum edkCSTL{
00350     edkCSTL_push_back = 1,
00351     edkCSTL_push_front,
00352     edkCSTL_insert,
00353 }
00354 
00356 struct dkutil_CSTLContainer{
00358     void *(*begin)(void);
00360     void *(*end)(void);
00362     void *(*next)(int);
00364     void *(*first_data)(void);
00366     void *(*next_data)(int);
00375 
00376     int (*insert)(int flag,void *data,size_t size,const void *priority,size_t priority_size);
00377 };
00378 
00379 //SingleList Object type
00380 
00382 typedef void (*SLIST_PUSH_DU)(size_t,const char *,size_t);
00384 typedef void (*SLIST_POP_DU)(size_t,void);
00386 typedef char *(*SLIST_GET_ITERATOR_DU)(size_t,void);
00388 typedef char *(SLIST_NEXT_DU)(size_t,const char *);
00389 
00391 typedef struct dSingleListObject{
00392     size_t handle;
00393     int (*push_back)(struct dSingleListObject *,const char *,size_t);
00394     int (*push_front)(struct dSingleListObject *,const char *,size_t);
00395     int (*pop_front)(struct dSingleListObject *);
00396     int (*clear)(struct dSingleListObject *);
00397     char *(*begin)(struct dSingleListObject *);
00398     char *(*end)(struct dSingleListObject *);
00399     char *(*next)(struct dSingleListObject *,char *);
00400     int (*destructor)(struct dSingleListObject *);
00401     int (*constructor)(struct dSingleListObject *);
00402     char *(*reference_ptr)(struct dSingleListObject *,char *);
00403     void (*set_size)(struct dSingleListObject *,size_t );
00404 }DKINGYOUTILITY2_SINGLE_LIST;
00405 
00406 
00407 
00408 
00410 enum edkParsedStringType{
00411     enuDU2CSV_STRING = 1,
00413     enuDU2CSV_STRING_32MORE,
00414     enuDU2CSV_INT,
00415     enuDU2CSV_LONGLONG,
00416     enuDU2CSV_ULONGLONG,
00417     enuDU2CSV_DOUBLE,
00418 };
00419 
00421 #define DCSVSTRUCTURE_PERMITSIZE_OFFSET_EXTENTION_NUM 3
00422 
00423 #define DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE 32
00424 
00425 typedef struct dCSVStructure{
00426     size_t x,y;
00427     int datatype;
00428     union{
00429         union{
00430             union{
00431                 char str[DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE];
00432                 size_t permitsize[4];//添え字の3にptrの確保したサイズをぶち込めばいいな!!
00433             };
00434             char *ptr;
00435         };
00436         int i;
00437         LONGLONG ll;
00438         ULONGLONG ull;
00439         double dbl;
00440     };
00441     //size_t access_permit;//本当はstrとptrのunion内に入れたいけど
00442     //ポインタは48BITとかあるらしいので、外部で我慢。
00443     void (*constructor)(struct dCSVStructure *,int,size_t);
00444     void (*destructor)(struct dCSVStructure *);
00445 }DKINGYOUTILITY2_CSV_STRUCTURE;
00446     
00447 #endif
00448     
00449 typedef struct dkc_Allocator{
00450     void (*malloc__)(size_t size);
00451     void (*free__)(void *);
00452     void (*realloc__)(void *,size_t);
00453     void (*zero_memory)(void *,size_t);
00454 }DKC_ALLOCATOR; 
00455     
00456 
00457 //**********************************************************
00458 //dKingyoUtility2と同じ マクロとか
00459 //**********************************************************
00460 
00462 #define MB(str) MessageBox(NULL,str,"Message",MB_OK)//MessageBox
00463 
00464 #define MB2(s,title) MessageBox(NULL,s,title,MB_OK);
00465 
00466 #define ODS(str) OutputDebugString(str)//OutputDebugString
00467 
00469 #define SWAP_NUM(a,b) \
00470     a = b - a ;\
00471     b -= a ;\
00472     a += b 
00473 
00477 #define SWAP_NUM_EX(a,b,ex) \
00478     (ex)a = (ex)(b - a ); \
00479     (ex)b = (ex)(b - a ); \
00480     (ex)a = (ex)(a + b )
00481 
00489 
00490 #define SM_OFFSET(p_type,field)     ((unsigned int)&(((p_type)NULL)->field))
00491 
00493 #define SET_RECT(rect, l, t, r, b) \
00494 {\
00495     rect##.left   = l;\
00496     rect##.top    = t;\
00497     rect##.right  = r;\
00498     rect##.bottom = b;\
00499 }
00500 
00501 #define NULL_CHAR_ARRAY(s) memset((void *)s,0,sizeof(s))
00502 
00503 
00504 
00505 
00506 #ifdef __cplusplus
00507 
00537 
00538 #define SET_VA_LIST(buff,buffnum,origin) \
00539 {\
00540     va_list VaList;\
00541     va_start( VaList , origin ) ;\
00542     int r;\
00543     r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00544     if(0 > r){\
00545         buff[buffnum - 1] = '\0';\
00546     }else{\
00547         buff[r+1] = '\0';\
00548     }\
00549     va_end( VaList ); \
00550 }
00551 
00552 
00553 #   define DKUTIL_SAFE_REALLOC(b,s) ::realloc(b,s)
00554 #   define DKUTIL_SAFE_MALLOC(s) ::malloc(s)
00555 #   define DKUTIL_SAFE_FREE(a) if(a){::free(a);a=NULL;}
00556     
00558 #   define DKUTIL_STRUCTURE_INIT(s) ::memset(&(s),0,sizeof(s))
00559 
00560 #   define DKUTIL_MEMZERO(mem,size) ::memset(mem,0,size)
00561 #else // for c lang
00562 
00563 
00564 
00565 #define DKUTIL_SAFE_REALLOC(b,s) realloc(b,s)
00566 #define DKUTIL_SAFE_MALLOC(s) malloc(s)
00567 #define DKUTIL_SAFE_FREE(a) if(a){free(a);a=NULL;}
00568 #define DKUTIL_STRUCTURE_INIT(s) memset(&(s),0,sizeof(s))
00569 
00570 #   define DKUTIL_MEMZERO(mem__,size__) memset(mem__,0,size__)
00571 #endif
00572 
00573 
00574 #define SET_VA_LIST_C(VaList,r,buff,buffnum,origin) \
00575 {\
00576     va_start( VaList , origin ) ;\
00577     r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00578     if(0 > r){\
00579         buff[buffnum - 1] = '\0';\
00580     }else{\
00581         buff[r+1] = '\0';\
00582     }\
00583     va_end( VaList ); \
00584 }
00585 
00587 #define DKUTIL_ARRAY_NUMOF(array) (sizeof(array)/sizeof(array[0]))
00588 
00589 #define DKUTIL_NAMELINK(X,Y) X##Y
00590 
00591 #define DKUTIL_MAKESIGNATURE(X) DKUTIL_NAMELINK(X,__LINE__)
00592 
00593 #define DKUTIL_MAKE_UINT_ID(id) ((((UINT)(id) & 0xFF) << 24) |     \
00594                   (((UINT)(id) & 0xFF00) << 8) |    \
00595                   (((UINT)(id) & 0xFF0000) >> 8) |  \
00596                   (((UINT)(id) & 0xFF000000) >> 24))
00597 
00599 #define DKUTIL_FLAG_DOWN(x,n) {x &= ~n;}//{(x & n) ? x |= (x^n) : 0;}//{x |= (x^n);}
00600 
00601 #define DKUTIL_FLAG_UP(x,n) {x |= n;}
00602 
00604 
00605 #define DKUTIL_FLAG_UP_N(x,n) DKUTIL_FLAG_UP(x,(1 << n))
00606 
00607 
00608 #define DKUTIL_FLAG_DOWN_N(x,n) DKUTIL_FLAG_DOWN(x,( 1<<n ))
00609 //#define DKUTIL_FLAG_DOWN_N(x,n) {x &= (x^ ( 1<<n ) );}
00610 //#define DKUTIL_FLAG_UP_N(x,n) {x |= (1 << n);}
00611 #endif // end of include once

dkutil_cに対してTue Oct 19 03:34:55 2004に生成されました。 doxygen 1.3.6