亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 按C51格式生成漢字字模的.c及.h的windows C源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include <stdio.h>
#include <string.h>

// #define HZK_DOT_SIZE_12
// #define HZK_DOT_SIZE_16
// #define GBK_DOT_SIZE_16
 #define GBK_DOT_SIZE_12
 #define FREETYPE2_DOT_SIZE_12
 #define FREETYPE2_DOT_SIZE_9

#if defined(FREETYPE2_DOT_SIZE_9)
  #include <iconv.h>
  #include <ft2build.h>
  #include FT_FREETYPE_H
#endif // defined(FREETYPE2_DOT_SIZE_9)

#if defined(FREETYPE2_DOT_SIZE_9)
   // #define HZK_FILE         "wenquanyi_9pt.pcf"
   #define HZK_FILE         "simsun.ttf"
   #define HZK_DOT_WIDTH    22
   #define HZK_DOT_SIZE     11
   #define HZK_BYTE_SIZE    2
#elif defined(GBK_DOT_SIZE_16)
   #define HZK_FILE         "HZK16.GBK"
   #define HZK_DOT_WIDTH    32
   #define HZK_DOT_SIZE     16
#elif defined(GBK_DOT_SIZE_12)
   #define HZK_FILE         "HZK12.GBK"
   #define HZK_DOT_WIDTH    24
   #define HZK_DOT_SIZE     12
#elif defined(HZK_DOT_SIZE_16)
   #define HZK_FILE         "hzk16.bin"
   #define HZK_DOT_WIDTH    32
   #define HZK_DOT_SIZE     16
#elif defined(HZK_DOT_SIZE_12)
   #define HZK_FILE         "hzk12"
   #define HZK_DOT_WIDTH    24
   #define HZK_DOT_SIZE     12
#endif

#define H_HZ_CODE_FILE   "hzkdef.h"
#define C_HZ_CODE_FILE   "hzkcode.c"

#define HZCODE_DEFIND_FILE  "CONFIGHZ.H"

int  _iParseStatus ;
      #define   PARSE_NULL                              0
      #define   PARSE_MACRO_MASK                        1
      #define   PARSE_MACRO_IF_MASK                     2
      #define   PARSE_MACRO_IF_DEF_MASK              3
      #define   PARSE_MACRO_IF_DEF_CLOSE_MASK       4
      #define   PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK  5
      #define   PARSE_MACRO_IFDEF_WAIT_ENDIF_WORD   6
      #define   PARSE_MACRO_DEFINE_MASK                 7
      #define   PARSE_MACRO_DEFINE_VALUE_MASK           8
      #define   PARSE_MACRO_INCLUDE_FILE_MASK           9

struct _CONFIGFILE_ {
      FILE *configFile  ;
      char configBuffer[256] ;
      int  leadOfconfigBuffer ;
      int  sizeOfconfigBuffer ;
      int  _iConfigFile_Line_Counter ;
} ;

struct _CONFIGFILE_ _head_configfile[10] ;
int   _iFileCounter ;

char wordBuffer[125] ;
int  sizeOfword ;

struct DefinedTok {
    char  Name[250]   ;
    int   Value       ;
} ;


struct DefinedTok  _defineToks[200] ;
int defineTokIndex;
int defineTokLast ;
struct DefinedTok *pLastDefineTok ;


int GetConfigFile()
{
     _head_configfile[_iFileCounter].sizeOfconfigBuffer = fread(_head_configfile[_iFileCounter].configBuffer,1,sizeof(_head_configfile[_iFileCounter].configBuffer),_head_configfile[_iFileCounter].configFile);
     if( _head_configfile[_iFileCounter].sizeOfconfigBuffer == 0 ) {
	   if( _iFileCounter > 0 ) {
		fclose(_head_configfile[_iFileCounter].configFile) ;
		_iFileCounter-- ;
		return _head_configfile[_iFileCounter].sizeOfconfigBuffer ;
	   }
     }
     _head_configfile[_iFileCounter].leadOfconfigBuffer = 0 ;
     return _head_configfile[_iFileCounter].sizeOfconfigBuffer ;
}

int IsNormalChar(char p)
{
    return     (p != ' ')  && (p != '!')   && (p != '(') && (p != '#')
	    && (p != ')')  && (p != '\r')  && (p != '\n') && (p != '/') ;
}

void ReturnCharToConfigBuffer()
{
    _head_configfile[_iFileCounter].leadOfconfigBuffer-- ;
}

char GetCharFromConfigBuffer()
{
      char c = 0 ;

loop:
      if( _head_configfile[_iFileCounter].leadOfconfigBuffer < _head_configfile[_iFileCounter].sizeOfconfigBuffer ) {
	  do {
	       c = _head_configfile[_iFileCounter].configBuffer[_head_configfile[_iFileCounter].leadOfconfigBuffer] ;
	       if( c == '\n' ) _head_configfile[_iFileCounter]._iConfigFile_Line_Counter++ ;
	       _head_configfile[_iFileCounter].leadOfconfigBuffer++ ;
	  } while ((c == '\n') || (c == '\r')) ;
      }
      else {
	   if( GetConfigFile() ) goto loop ;
      }
      return c ;
}

char _notCR_GetCharFromConfigBuffer()
{
      char c = 0 ;

loop:
      if( _head_configfile[_iFileCounter].leadOfconfigBuffer < _head_configfile[_iFileCounter].sizeOfconfigBuffer ) {
	       c = _head_configfile[_iFileCounter].configBuffer[_head_configfile[_iFileCounter].leadOfconfigBuffer] ;
	       if( c == '\n' ) _head_configfile[_iFileCounter]._iConfigFile_Line_Counter++ ;
	       _head_configfile[_iFileCounter].leadOfconfigBuffer++ ;
      }
      else {
	   if( GetConfigFile() ) goto loop ;
      }
      return c ;
}

void SkipCommitTok()
{
      char p ;

next_char_lp:
      p = GetCharFromConfigBuffer() ;
      if( p == '*' && p ) {
	    p = GetCharFromConfigBuffer() ;
	    if( p == '/' ) return ;
	    goto next_char_lp ;
      }
}

void SkipNewStyleCommitTok()
{
      char p ;

next_char_lp:
      p = _notCR_GetCharFromConfigBuffer() ;
      if( p == '\r' || p == '\n' ) return ;
      goto  next_char_lp ;
}

char *GetWordFromConfigFile()
{
      char p ;

head_LP:
      p = GetCharFromConfigBuffer() ;
      while(p == ' ' && p ) {
	  p = GetCharFromConfigBuffer() ;
      }

      if( p == '#' || p == '!' || p == ')' ) {
	  wordBuffer[0] = p ;
	  wordBuffer[1] = 0x00 ;
	  sizeOfword = 1 ;
	  return &wordBuffer[0];
      }

      if( p == '/' && p ) {
	  p = GetCharFromConfigBuffer() ;
	  if( p == '/'  && p ) {  // skip to new line
	       SkipNewStyleCommitTok() ;
	       goto head_LP ;
	  }
	  if( p == '*'  && p ) {
	       SkipCommitTok() ;
	       goto head_LP ;
	  }
      }

      sizeOfword = 0 ;
      while( p && IsNormalChar(p) ) {
	     wordBuffer[sizeOfword++] = p ;
	     p = GetCharFromConfigBuffer() ;
      }
      if( p == ')' || p == '#' || p == '/') ReturnCharToConfigBuffer() ;
      wordBuffer[sizeOfword] = 0x00 ;

      return &wordBuffer[0] ;
}

int findDefineTok(char *pDef)
{
     int i ;

     for(i = 0 ; i < defineTokLast ; i++) {
	   if( strcmp(_defineToks[i].Name,pDef) == 0 ) {
	       pLastDefineTok = &_defineToks[i] ;
	       return  1 ;
	   }
     }
     return 0 ;
}

struct _IF_MARCO_PARAM {
     int  _iNest_If_ ;
} ;

struct _IF_MARCO_PARAM   _if_macro_param ;

void ProcessFileName(char *pName)
{
     char *p = pName ;
     size_t   max_len  = strlen(pName) ;
     int      i ;

     if( *p == '\"' && p ) {
	 for(i=1;i<max_len+1;i++) {
	     *p++ = pName[i] ;
	 }
     }
     max_len  = strlen(pName) ;
     p = &pName[max_len-1] ;
     if( *p == '\"' && p ) {
	*p = 0 ;
     }
}

int Process_IfMacro()
{
    int   _if_ParseStatus = PARSE_MACRO_IF_MASK ;
    int   _i_isNotFlag = 0 ;
    char  _strDefineName[128] ;
    int   _iNest_if_macro = 1 ;
    int   _i_SkipAllIfMacro = 0 ;

    while(1) {
	   if( _head_configfile[_iFileCounter].leadOfconfigBuffer >= _head_configfile[_iFileCounter].sizeOfconfigBuffer ) {
		   if( !GetConfigFile() ) return 0 ;
	   }
	   if( !GetWordFromConfigFile() ) {
		    return 0 ;
	   }

	   switch(_if_ParseStatus) {
	      case PARSE_MACRO_MASK :
		   if( strncmp(wordBuffer,"define",6)==0) {
			_if_ParseStatus = PARSE_MACRO_DEFINE_MASK ;
		   }
		   else if( strncmp(wordBuffer,"include",7)==0) {
			_if_ParseStatus = PARSE_MACRO_INCLUDE_FILE_MASK;
		   }
		   break ;
	      case PARSE_MACRO_INCLUDE_FILE_MASK:
		   _iFileCounter++ ;
		   ProcessFileName(wordBuffer) ;
		   _head_configfile[_iFileCounter].configFile = fopen(wordBuffer,"r");
		   if( _head_configfile[_iFileCounter].configFile == NULL ) {
			     printf("HZ Code define header file can not found %s\n",wordBuffer) ;
			     return 0 ;
		   }
		   _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		   break ;
	      case PARSE_MACRO_DEFINE_MASK :
		   if( !findDefineTok(wordBuffer) ) {
			 _defineToks[defineTokLast].Value = -1 ;
			 strcpy(_defineToks[defineTokLast].Name,wordBuffer) ;
			 pLastDefineTok = &_defineToks[defineTokLast] ;
			 defineTokLast++ ;
		   }
		   _if_ParseStatus = PARSE_MACRO_DEFINE_VALUE_MASK ;
		   break ;
	      case PARSE_MACRO_DEFINE_VALUE_MASK :
		   if( strncmp(wordBuffer,"#",1)==0) {
		       _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_WORD ;
		       break ;
		   }
		   else if( wordBuffer[0] != 0 ) {
			pLastDefineTok->Value = atoi(wordBuffer) ;
			_if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		   }
		   break ;
	      case PARSE_MACRO_IF_MASK :
		   if( strncmp(wordBuffer,"!",1)==0) {
			_i_isNotFlag = 1 ;
		   }
		   else if( strncmp(wordBuffer,"include",7)==0) {
			_if_ParseStatus = PARSE_MACRO_INCLUDE_FILE_MASK;
		   }
		   else if( strncmp(wordBuffer,"defined",7)==0) {
			_if_ParseStatus = PARSE_MACRO_IF_DEF_MASK  ;
		   }
		   break ;
	      case PARSE_MACRO_IF_DEF_MASK:
		   strcpy(_strDefineName,wordBuffer) ;
		   _if_ParseStatus = PARSE_MACRO_IF_DEF_CLOSE_MASK ;
		   break ;
	      case PARSE_MACRO_IF_DEF_CLOSE_MASK:
		   if( strncmp(wordBuffer,")",1)==0) {
		   }
		   else if( strncmp(wordBuffer,"#",1)==0) {
		       if( findDefineTok(_strDefineName) ) {
			   if( _i_isNotFlag ) {
				 _iNest_if_macro   = 1 ;
				 _i_SkipAllIfMacro = 1 ;
				 _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK;
			   }
			   else
			   {
				 _i_SkipAllIfMacro = 0 ;
			   }
		       }
		       else
		       {
			   _i_SkipAllIfMacro = !_i_isNotFlag ;
		       }
		       if( _i_SkipAllIfMacro ) {
			  _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK;
		       }
		       else {
			  _if_ParseStatus = PARSE_MACRO_MASK ;
		       }
		   }
		   break ;
	      case PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK :
		   if( strncmp(wordBuffer,"#",1)==0) {
		       _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_WORD  ;
		   }
		   break ;
	      case PARSE_MACRO_IFDEF_WAIT_ENDIF_WORD  :
		   if( (strncmp(wordBuffer,"if",2)==0) ) {
		       if( _i_SkipAllIfMacro ) {
			     _iNest_if_macro++ ;
			     _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		       } else
		       {
			    Process_IfMacro() ;
			    _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
93久久精品日日躁夜夜躁欧美| 欧美成人性战久久| av资源网一区| 99久久精品久久久久久清纯| 白白色 亚洲乱淫| 成a人片亚洲日本久久| 丁香婷婷综合五月| www.激情成人| 91麻豆123| 欧美日韩国产高清一区二区三区 | 欧美成人a∨高清免费观看| 欧美顶级少妇做爰| 日韩一区二区免费在线电影| 欧美大片一区二区| 久久精品亚洲一区二区三区浴池| 国产欧美va欧美不卡在线| 国产精品嫩草影院av蜜臀| 亚洲视频精选在线| 亚洲福利视频一区| 老司机精品视频线观看86| 精品午夜一区二区三区在线观看| 粉嫩久久99精品久久久久久夜| av在线综合网| 7777精品伊人久久久大香线蕉的| 精品国产乱码久久久久久久| 日本一区二区成人在线| 亚洲精品成人天堂一二三| 午夜精品久久久久久不卡8050| 蜜桃视频一区二区三区| 成人免费观看av| 欧美日韩免费电影| 2023国产精品| 亚洲九九爱视频| 日韩高清欧美激情| 国产成人亚洲精品狼色在线 | 精品国产免费人成电影在线观看四季| 国产亚洲综合在线| 夜夜揉揉日日人人青青一国产精品| 三级不卡在线观看| 狠狠色丁香久久婷婷综合丁香| 菠萝蜜视频在线观看一区| 一本大道av伊人久久综合| 欧美tickling挠脚心丨vk| 欧美日韩美女一区二区| 亚洲一区欧美一区| 欧美激情一区在线观看| 一区二区三区 在线观看视频| 日韩**一区毛片| 白白色亚洲国产精品| 欧美一区二区性放荡片| 国产精品网站在线| 免费不卡在线观看| 日本丰满少妇一区二区三区| 久久亚洲精品国产精品紫薇| 亚洲精品日韩一| 国产精品影视网| 欧美视频精品在线| 国产精品三级av在线播放| 日本特黄久久久高潮| 色综合天天综合网国产成人综合天 | 亚洲黄色免费电影| 久久狠狠亚洲综合| 欧美午夜免费电影| 亚洲国产精品精华液2区45| 日韩—二三区免费观看av| 99精品在线观看视频| 久久这里只有精品6| 亚洲大片一区二区三区| 91在线丨porny丨国产| 久久综合九色欧美综合狠狠 | 在线观看日韩电影| 国产精品剧情在线亚洲| 麻豆国产欧美日韩综合精品二区| 色狠狠色噜噜噜综合网| 国产精品久久久久永久免费观看 | 视频一区二区三区中文字幕| 99riav一区二区三区| 国产女主播视频一区二区| 理论片日本一区| 欧美日韩一区二区三区高清| 亚洲日本在线观看| 成人免费毛片片v| 久久久久久久久久久久久久久99 | 成人免费视频免费观看| 精品久久国产老人久久综合| 偷拍亚洲欧洲综合| 欧美日韩成人激情| 亚洲成a天堂v人片| 欧美色图在线观看| 一区二区三区日本| 欧洲精品一区二区| 亚洲精品第一国产综合野| eeuss鲁片一区二区三区在线看| 国产欧美一区二区精品仙草咪| 激情欧美一区二区三区在线观看| 日韩情涩欧美日韩视频| 久久精品国产精品亚洲红杏| 日韩久久免费av| 久久国产精品99久久久久久老狼 | 欧美国产日产图区| 国产91综合网| 欧美国产欧美综合| 成人av午夜影院| 亚洲欧洲在线观看av| 99国产精品久久久久| 综合在线观看色| 在线观看成人免费视频| 亚洲高清三级视频| 欧美挠脚心视频网站| 香蕉久久夜色精品国产使用方法| 欧美日韩一区二区三区四区| 日韩精品一区第一页| 欧美一区二区三级| 精一区二区三区| 久久精品视频一区| av在线播放不卡| 一区二区久久久久久| 欧美人妇做爰xxxⅹ性高电影| 午夜a成v人精品| 精品欧美一区二区三区精品久久 | 欧美一级久久久久久久大片| 秋霞午夜鲁丝一区二区老狼| 精品久久久久久久久久久久久久久久久| 精久久久久久久久久久| 国产精品人成在线观看免费| 色网站国产精品| 免费观看日韩电影| 国产喷白浆一区二区三区| 99久久久久免费精品国产| 香蕉久久夜色精品国产使用方法 | 欧美色图天堂网| 免费高清不卡av| 国产亚洲一区二区三区四区| av在线这里只有精品| 亚洲成人激情自拍| 久久综合久久综合亚洲| 91麻豆免费看片| 奇米影视一区二区三区| 国产日韩精品久久久| 欧美在线免费播放| 蜜芽一区二区三区| 最新日韩在线视频| 9191精品国产综合久久久久久| 国模娜娜一区二区三区| 亚洲精品国产精华液| 欧美v亚洲v综合ⅴ国产v| 99国内精品久久| 青青草97国产精品免费观看无弹窗版| 国产欧美精品一区二区三区四区 | 亚洲图片另类小说| 欧美一级欧美一级在线播放| 大尺度一区二区| 首页国产丝袜综合| 国产精品二三区| 日韩美女主播在线视频一区二区三区| aa级大片欧美| 精品一二三四在线| 亚洲国产综合色| 国产精品午夜春色av| 91精品国产综合久久婷婷香蕉| 成人小视频在线观看| 欧美aaaaaa午夜精品| 亚洲乱码国产乱码精品精可以看 | 国产精品国产三级国产普通话三级| 欧美日韩亚洲综合在线| 高清不卡一区二区| 久久99热这里只有精品| 亚洲一区二区三区四区五区黄 | 天天色综合成人网| 亚洲欧洲精品成人久久奇米网| 日韩三级在线观看| 在线免费观看日本一区| 成人午夜精品在线| 国产在线视频精品一区| 婷婷一区二区三区| 一区二区在线免费观看| 国产精品国产三级国产aⅴ无密码| 日韩欧美国产一区二区在线播放 | 亚洲免费高清视频在线| 亚洲国产精品成人综合| 欧美成人三级电影在线| 6080日韩午夜伦伦午夜伦| 色噜噜偷拍精品综合在线| heyzo一本久久综合| 国产精品一区二区三区网站| 麻豆精品一区二区| 日韩—二三区免费观看av| 亚洲第一激情av| 亚洲一区二区高清| 一区二区三区日本| 亚洲黄网站在线观看| 日韩理论在线观看| 中文字幕日韩av资源站| 国产欧美视频一区二区三区| 久久奇米777| 国产亚洲欧洲一区高清在线观看| 日韩欧美一区二区在线视频| 欧美一级免费大片| 欧美电视剧在线观看完整版| 欧美一二三四区在线|