/************************************************************************/ /* copyright */ /* version 1.1 修改TPoint TRect 的数据类型为int */ /************************************************************************/ #ifndef __COMMON_DEF_H__ #define __COMMON_DEF_H__ ////////////////////////////////////////////////////////////////////////// /* 平台相关的一些定义 */ /** 调用方式约定 */ #if (defined WIN32 || defined WIN64) //-----------windows----------------------------- #define STD_CDECL __cdecl //C调用约定 #define STD_STDCALL __stdcall //pascall调用约定 #define STD_EXPORTS __declspec(dllexport) #define STD_WINAPI __stdcall #else //-----------linux------------------------------- #define STD_CDECL #define STD_STDCALL #define STD_EXPORTS __attribute__ ((visibility("default"))) #endif /* 导出方式定义 */ #ifndef STD_EXTERN_C #ifdef __cplusplus #define STD_EXTERN_C extern "C" #else #define STD_EXTERN_C extern #endif #endif /* 接口定义:采用标准的C调用约定 */ #ifndef STD_API #define STD_API(rettype) STD_EXTERN_C STD_EXPORTS rettype STD_CDECL /* 接口实现:采用标准的C调用约定 */ #define STD_IMPL STD_EXTERN_C STD_EXPORTS #endif /* C++接口定义 */ #ifndef CPP_API #define CPP_API(rettype) STD_EXPORTS rettype STD_CDECL #define CPP_IMPL STD_EXPORTS #endif ////////////////////////////////////////////////////////////////////////// //常用定义宏 /* MIN, MAX, ABS */ #define ZMIN(a, b) ((a)>(b) ? (b) : (a)) #define ZMAX(a, b) ((a)<(b) ? (b) : (a)) #define ZABS(a) ((a) < 0 ? (-(a)) : a) #define ZSIGN(x) (((x) < 0) ? -1 : 1) #define ZFALSE (0) #define ZTRUE (1) #define ZPI (3.1415926535) #define PROCNAME(name) static const char procName[] = name #define ROUND(a) ((int)((a) + ((a) >= 0 ? 0.5 : -0.5))) #define FLOOR(a) ( ROUND(a) + ((a - ROUND(a)) < 0 ) ) #define CEIL(a) ( ROUND(a) + ((ROUND(a) - a) < 0 ) ) ////////////////////////////////////////////////////////////////////////// //64位大数,由于下面long被重定义了,所以这个要提前 #if (defined WIN32 || defined WIN64) typedef __int64 TInt64; #else typedef long long TInt64; #endif //由于long的长度有32位好64位的问题,统一用int来处理,识别内核没有问题 //#define long int ////////////////////////////////////////////////////////////////////////// /**common data types, when we write code, we must use this data type to make our code partable *more easily, and make our code write more precise in data type.*/ typedef signed char TInt8; typedef signed short TInt16; typedef signed int TInt32; typedef signed int TInt; typedef signed long TLong; //长度x32,4byte,x64是8byte typedef unsigned char TUint8; typedef unsigned short TUint16; typedef unsigned int TUint32; typedef unsigned int TUint; //DWORD typedef unsigned char TUchar; //BYTE typedef unsigned short TUshort; //WORD typedef unsigned long TUlong; //长度x32,4byte,x64是8byte typedef float TReal32; typedef double TReal64; typedef int TBool; typedef void TVoid; typedef void* THandle; // handle=void* typedef int TStatus; typedef int TSTATUS; typedef void* THandle; ////////////////////////////////////////////////////////////////////////// /* 点 */ typedef struct TPoint_ { int x; int y; }TPoint; /* 矩形(包含关系) */ typedef struct TRect_ { int nLft; int nRgt; int nTop; int nBtm; }TRect; ////////////////////////////////////////////////////////////////////////// //数据类型最大值和最小值 #define TINT8_MIN (-128) #define TINT16_MIN (-32768) #define TINT32_MIN (-2147483647 - 1) #define TINT64_MIN (-9223372036854775807LL - 1) #define TINT8_MAX 127 #define TINT16_MAX 32767 #define TINT32_MAX 2147483647 #define TINT64_MAX 9223372036854775807LL #define TUINT8_MAX 0xff /* 255U */ #define TUINT16_MAX 0xffff /* 65535U */ #define TUINT32_MAX 0xffffffff /* 4294967295U */ #define TUINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */ ////////////////////////////////////////////////////////////////////////// //错误类型 错误编码 <0 发生错误 否则正确,32位的错误编码 /** 判断语句 */ #define ISFAILED(iStatus) ((iStatus) < 0 ) #define ISSUCCEEDED(iStatus) ((iStatus) >= 0 ) /** 没有错误 */ #define STATUS_OK (0 ) /** 内存不足 */ #define STATUS_NOMEMORY (-80001) /** 输入参数不对 */ #define STATUS_INVALIDARG (-80002) /** 无此接口 */ #define STATUS_NOINTERFACE (-80003) /** 无效指针 */ #define STATUS_INVALIDPTR (-80004) /* 文件错误 */ #define STATUS_FILEERROR (-80005) /** 识别字典没有初始化 */ #define STATUS_DICT_UNINIT (-80006) /** 识别字典错误 */ #define STATUS_RECG_ERROR (-80007) /** 字典初始化错误 */ #define STATUS_DICT_ERROR (-80008) /** 指针为空 */ #define STATUS_NULLPTR (-80009) /** not supported image formate */ #define STATUS_UNKNOWFMT (-80010) /** 图像错误 */ #define STATUS_BADIMAGE (-80011) /** 添加其他错误 ........................ */ /** 定位错误 */ #define STATUS_DETECTERR (-80020) /** 解码错误 */ #define STATUS_DECODEERR (-80021) /** 编码错误 */ #define STATUS_ENCODEERR (-80022) /** 库过期了*/ #define STATUS_OVERTIME (-80023) /**其他错误 */ #define STATUS_UNEXPECTED (-88888) ////////////////////////////////////////////////////////////////////////// #endif //__COMMON_DEF_H__