⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gblt_def.h

📁 某中文手写输入法公司的手写识别输入的实例源程序。
💻 H
字号:
//Create at 2003-5-20 21:07:48 by abing#ifndef __EBEN_DEFINES_H_#define __EBEN_DEFINES_H_#define EN_INPUT_MAX_LEN                        31#define EN_WORD_MAX_LEN                         EN_INPUT_MAX_LEN#define EN_CANDIDATE_MAX_COUNT                  10#define EN_MAX_DESIRE_COUNT                     EN_CANDIDATE_MAX_COUNT#define EN_MAX_DESIRE_LEN                       255#ifndef LATIN_ENCODE_LENGTH#define LATIN_ENCODE_LENGTH                     2#endif/************************************************************************************ ********************************Type Define***************************************** ************************************************************************************/#ifndef GB_TYPE_DEFINE#define GB_TYPE_DEFINE/* adding for GinWave */#ifndef _gb_far#ifdef _C166#define _gb_far _huge#else#define _gb_far#endif#endif#ifndef DEFINED_GBCHAR#define DEFINED_GBCHAR//#if LATIN_ENCODE_LENGTH == 2#if LATIN_ENCODE_LENGTH == 2typedef unsigned short  GBCHAR;typedef unsigned short  GBUCHAR;#else //LATIN_ENCODE_LENGTH == 2typedef char            GBCHAR;typedef unsigned char   GBUCHAR;#endif //LATIN_ENCODE_LENGTH == 2typedef GBUCHAR							GBCHARU;#endif //DEFINED_GBCHARtypedef unsigned char                   GBUINT8;typedef signed char                     GBINT8;typedef unsigned char					GBBYTE;typedef unsigned short                  GBWCHAR;typedef char                            GBACHAR;typedef unsigned char                   GBUACHAR;typedef GBWCHAR *                       GBPWCHAR;typedef GBWCHAR _gb_far *               GBLPWCHAR;typedef const GBWCHAR *                 GBPCWCHAR;typedef const GBWCHAR _gb_far *         GBLPCWCHAR;typedef GBACHAR *                       GBPACHAR;typedef GBACHAR _gb_far *               GBLPACHAR;typedef const GBACHAR *                 GBPCACHAR;typedef const GBACHAR _gb_far *         GBLPCACHAR;typedef GBACHAR _gb_far const * const * GBPCLPCACHAR;typedef GBUACHAR *                      GBPUACHAR;typedef GBUACHAR _gb_far *              GBLPUACHAR;typedef const GBUACHAR *                GBPCUACHAR;typedef const GBUACHAR _gb_far *        GBLPCUACHAR;                                        typedef short                           GBINT16;typedef long                            GBINT32;typedef unsigned short                  GBUINT16;typedef unsigned long                   GBUINT32;                                        typedef int                             GBINT;typedef unsigned int                    GBUINT;                                       typedef GBCHAR *                        GBPCHAR;typedef GBUCHAR *						GBPUCHAR;typedef GBINT16 *                       GBPINT16;typedef GBUINT16 *                      GBPUINT16;typedef GBINT32 *                       GBPINT32;typedef GBUINT32 *                      GBPUINT32;                                        typedef GBCHAR _gb_far *                GBLPCHAR;typedef GBUCHAR _gb_far *				GBLPUCHAR;typedef GBINT16 _gb_far *               GBLPINT16;typedef GBUINT16 _gb_far *              GBLPUINT16;typedef GBINT32 _gb_far *               GBLPINT32;typedef GBUINT32 _gb_far *              GBLPUINT32;                                        typedef const unsigned short *          GBPCUSHORT;typedef unsigned short  *               GBPUSHORT;typedef const GBCHAR *                  GBPCCHAR;typedef const GBINT16 *                 GBPCINT16;typedef const GBUINT16 *                GBPCUINT16;typedef const GBINT32 *                 GBPCINT32;typedef const GBUINT32 *                GBPCUINT32;                                        typedef const GBCHAR _gb_far *          GBLPCCHAR;typedef const GBUCHAR _gb_far *			GBLPCUCHAR;typedef const GBINT16 _gb_far *         GBLPCINT16;typedef const GBUINT16 _gb_far *        GBLPCUINT16;typedef const GBINT32 _gb_far *         GBLPCINT32;typedef const GBUINT32 _gb_far *        GBLPCUINT32;/**********/typedef const unsigned short _gb_far *	GBLPCUSHORT;typedef unsigned short _gb_far *		GBLPUSHORT;typedef GBBYTE *						GBPBYTE;typedef GBBYTE _gb_far *				GBLPBYTE;typedef const GBBYTE *					GBPCBYTE;typedef const GBBYTE _gb_far *			GBLPCBYTE;typedef int *							GBPINT;typedef unsigned int *					GBPUINT;typedef int _gb_far *					GBLPINT;typedef unsigned int _gb_far *			GBLPUINT;typedef void *							GBPVOID;typedef const void *					GBPCVOID;typedef void _gb_far *					GBLPVOID;typedef const void _gb_far *			GBLPCVOID;//返回值typedef GBINT							GBRETURN ;/** * 应用上面的类型 */typedef GBUINT16						GB_CHN_ISN;typedef GBBYTE							ENCODING_TYPE;typedef GBLPCBYTE						pENCODING_TYPE;#endif#if LATIN_ENCODE_LENGTH == 2#define gb_strncpy          wcsncpy#define gb_strlen           wcslen#define gb_strcpy           wcscpy#define gb_strcmp           wcscmp#define gb_strchr           wcschr#define gb_strstr           wcsstr //use in generator#define gb_strncmp          wcsncmp#define gb_strcat           wcscat#define gb_strcspn          wcscspn#define gb_strtok           wcstok //use in generator#define gb_strspn           wcsspn //use in generator#define gb_strpbrk          wcspbrk //not use#define gb_sprintf          swprintf //use in generator#define gb_scanf            wscanf //use in generator#define gb_atoi             _wtoi //use in generator#define GBSTR(a)            L##a#else //LATIN_ENCODE_LENGTH == 2#ifndef _C166#define gb_strncpy          strncpy#define gb_strlen           strlen#define gb_strcpy           strcpy#define gb_strcmp           strcmp#define gb_strchr           strchr#define gb_strstr           strstr#define gb_strncmp          strncmp#define gb_strcat           strcat#define gb_strpbrk          strpbrk#define gb_strcspn          strcspn#define gb_strtok           strtok#define gb_strspn           strspn#else //_C166#define gb_strcat               _hstrcat#define gb_strcmp               _hstrcmp#define gb_stricmp              _hstricmp#define gb_strcpy               _hstrcpy#define gb_strlen               _hstrlen#define gb_strchr               _hstrchr#define gb_strncpy              _hstrncpy#define gb_strncmp              _hstrncmp#define gb_sprintf              _hsprintf#define gb_strstr               _hstrstr#define gb_strpbrk              _hstrpbrk#define gb_strcspn              _hstrcspn#define gb_strtok               _hstrtok#define gb_strspn               _hstrspn#define gb_strncat              _hstrncat#endif //_C166#define gb_atoi             atoi#define gb_sprintf          sprintf#define gb_scanf            scanf#define GBSTR(a)            a#endif //LATIN_ENCODE_LENGTH == 2#ifndef DEFINED_GBCHAR#define DEFINED_GBCHAR      1#if LATIN_ENCODE_LENGTH == 2typedef unsigned short  GBCHAR;typedef unsigned short  GBCHARU;#else //LATIN_ENCODE_LENGTH == 2typedef char            GBCHAR;typedef unsigned char   GBCHARU;#endif //LATIN_ENCODE_LENGTH == 2typedef GBCHARU			GBUCHAR;#endif //#ifndef DEFINED_GBCHARtypedef GBCHAR EN_WORD[EN_INPUT_MAX_LEN + 1];#define EBEN_OK                                 0#define EBEN_FAILED                             -1#define EBEN_INVALID_INDEX                      -100#define EBEN_NULL                               0#define EBEN_NOTINIT					-2 //没有调用EBStartup()!#define EBEN_PEBIS_NULL				    -3 //pEBIS为空.#define EBEN_INVALID_INPUT_LEN          -4 //#define EBEN_INVALID_DESIRE_LEN         -5#define EBEN_INVALID_STATUS             -7#define EBEN_NO_MATCH                   -8 //没找到匹配串#define EBEN_INVALID_INVOKE             -9 //非法调用#define EBEN_NO_WORD                    -10 //单词表里面没有任何单词#define EBEN_INVALID_DESIRE             -12#define EBEN_INVALID_DESIRE_COUNT       -13#define EBEN_NO_DATA_FILE               -14#define EBEN_INVALID_DATA_FORMAT        -15#define EBEN_FAILED_ALLOC_MEM           -16#define EBEN_CORRUPTED_DATA_FILE        -17#define EBEN_MISS_DATA                  -18#define EBEN_INVALID_CHAR               -19#define EBEN_WORD_TOO_LONG              -20#define EBEN_NULL_WORD                  -21#define EBEN_SH_NO_SPACE                -22#define EBEN_WORD_EXISTS                -23//数据中的字符集有问题#define EBEN_INVALID_VALIDCHAR          -24//数据与引擎版本不匹配#define EBEN_DATA_MISMATCH              -25//自造词数据错误#define EBEN_SH_BUFFER_TO_SMALL           -26 //调用EBShDataInit的时候, 缓冲区的长度不足#define EBEN_SH_CORRUPT_DATA              -27 //错误的自造词数据#define EBEN_SH_INVALID_ADDRESS           -28 //自造词数据的头地址不能被4整除#define EBEN_SH_NOT_INIT                  -30 //自造词和词语调频数据没有初始化#define EBEN_SH_INVALID_WORD              -32 //自造词数据中包涵非法的字母#define EBEN_SH_SPACE_NOT_ENOUGH          -33 //空间不足#define EBEN_SH_DUPLICATE                 -34 //已经存在一个完全相同的单词#define EBEN_SH_PHRASE_INVALID_LENGTH     -35 //自造词太长了#define CLEAR_CANDIDATES(pENIS)         \    CLEAR_ARRAY((pENIS)->candidates);   \    (pENIS)->candidateCount = 0; #define CLEAR_INPUT(pENIS)              \    CLEAR_ARRAY((pENIS)->inputString);  \    (pENIS)->inputLen = 0;\    CLEAR_ARRAY((pENIS)->header);\    pENIS->headerIsAWord = 0;#define CLEAR_ENIS(pENIS)               \    CLEAR_CANDIDATES(pENIS);            \    CLEAR_INPUT(pENIS);/*buf     : (in)will be the address of DIY words' bufferaddin   : (in)will be the addin param pass from EnSelfHelpWordsInit*/typedef void (* fpUpdateSelfHelpData)(GBLPCVOID buf, GBLPVOID addin);/*buf         : (in/out)the address of the point of DIY words' buffer capacity    : (in/out)the address of the capacity, the value of *capacity is the length of buffer.increment   : (in) the increment at least should be extent.addin       : (in)will be the addin param pass from EnSelfHelpWordsInit */typedef void (* fpExtentBuf)(GBCHAR * * buf, unsigned int * capacity, unsigned int increment, void * addin);#define EN_WORD_EXISTS              2#define EN_WORD_EXISTS_AS_HEADER    1#define EN_WORD_NO_EXISTS           0#define EN_WORD_INVALID             -1//<ENInputStruct::outputStatus>//以下定义是解析ENInputStruct::outputStatus的定义,同时也用于GBLtGetDesireOutput//在输出字母候选的时候不要根据语言的特性进行候选的顺序调整//一般使用于单个字母的输入法的实现中#define EN_OPTION_DONT_ADJUST_CHAR_ORDER        0x01 //各种输出的选项#define EN_OPTION_OUTPUT_FLAG                   0x0e // 8种可能 0 2 4 6 8 10 12 14 #define EN_OPTION_OUTPUT_NORMAL                 0x0000 //输出默认的大小状态的单词#define EN_OPTION_OUTPUT_FCC                    0x02 //输出首字母大写的候选单词#define EN_OPTION_OUTPUT_CAPITAL                0x04 //输出大写的候选单词#define EN_OPTION_OUTPUT_LOWER                  0x06 //输出小写的候选单词#define EN_OPTION_OUTPUT_TOGGLE_FCC             0x08 //改变当前输出的大小状态#define EN_OPTION_OUTPUT_CAPITAL_CHAR           0x0A //单个字母的时候只输出大写字母,其他时候输出普通的单词#define EN_OPTION_OUTPUT_LOWER_CHAR             0x0C //单个字母的时候只输出小写字母,其他时候输出普通的单词#define EN_OPTION_DONT_ADD_HEADER				0x10 //header不要出现在候选//</ENInputStruct::outputStatus>//add by abing on 20070820 for FIRST_CHAR_ASSOC & GBMMI init char array#define EN_OPTION_OUTPUT_CHAR_ARRAY				0x0020//<#define EN_OUTPUT_NORMAL                        EN_OPTION_OUTPUT_NORMAL //正常状态#define EN_OUTPUT_FCC                           EN_OPTION_OUTPUT_FCC //首字母大写#define EN_OUTPUT_CAPITAL                       EN_OPTION_OUTPUT_CAPITAL //大写#define EN_OUTPUT_LOWER                         EN_OPTION_OUTPUT_LOWER //小写#define EN_OUTPUT_TOGGLE_FCC                    EN_OPTION_OUTPUT_TOGGLE_FCC //切换首字母的大小写//#define EN_STATUS_SELF_HELP                     0x01 //引擎开始自造词状态//language definition#define GB_LANG_Afrikaans      				0x36#define GB_LANG_Albanian       				0x1C#define GB_LANG_Arabic         				0x01#define GB_LANG_Basque         				0x2D#define GB_LANG_Belarusian     				0x23#define GB_LANG_Bulgarian      				0x02#define GB_LANG_Catalan        				0x03#define GB_LANG_Chinese        				0x04#define GB_LANG_Croatian       				0x041a#define GB_LANG_Czech          				0x05#define GB_LANG_Danish         				0x06#define GB_LANG_Dutch          				0x13#define GB_LANG_English        				0x09#define GB_LANG_Estonian       				0x25#define GB_LANG_Faeroese       				0x38#define GB_LANG_Farsi          				0x29#define GB_LANG_Finnish        				0x0B#define GB_LANG_French         				0x0C#define GB_LANG_Gaelic         				0x3C#define GB_LANG_German         				0x07#define GB_LANG_Greek          				0x08#define GB_LANG_Hebrew         				0x0D#define GB_LANG_Hindi          				0x39#define GB_LANG_Hungarian      				0x0E#define GB_LANG_Icelandic      				0x0F#define GB_LANG_Indonesian     				0x21#define GB_LANG_Italian        				0x10#define GB_LANG_Japanese       				0x11#define GB_LANG_Korean         				0x12#define GB_LANG_Latvian        				0x26#define GB_LANG_Lithuanian     				0x27#define GB_LANG_Macedonian     				0x2F#define GB_LANG_Malaysian      				0x3E#define GB_LANG_Maltese        				0x3A#define GB_LANG_Norwegian      				0x14#define GB_LANG_Polish         				0x15#define GB_LANG_Portuguese     				0x16#define GB_LANG_Romanian       				0x18#define GB_LANG_Russian        				0x19#define GB_LANG_Serbian        				0x081a#define GB_LANG_Slovak         				0x1B#define GB_LANG_Slovenian      				0x24#define GB_LANG_Sorbian        				0x2E#define GB_LANG_Spanish        				0x0A#define GB_LANG_Sutu           				0x30#define GB_LANG_Swedish        				0x1D#define GB_LANG_Thai           				0x1E#define GB_LANG_Tsonga         				0x31#define GB_LANG_Tswana         				0x32#define GB_LANG_Turkish        				0x1F#define GB_LANG_Ukrainian      				0x22#define GB_LANG_Urdu           				0x20#define GB_LANG_Vietnamese     				0x2A#define GB_LANG_Xhosa          				0x34#define GB_LANG_Yiddish        				0x3D#define GB_LANG_Zulu           				0x35#define GB_LANG_Uighur						0x0480		//ug#define GB_LANG_Tibetan						0x0451		//bo#define GB_LANG_Swahili						0x0441      //坦桑尼亚语#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -