123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- /************************************************************************/
- /* 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__
|