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

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

?? rc.c

?? UNIX 資源文件編譯器
?? C
字號:
/*****************************************************************************    ------------	子系統名稱: 界面資源管理器*        RC.C*    ------------	模塊名稱  : 資源編譯程序****************************************************************************/#include	"rc.h"#include	"resource.h"char		pRESName[128];/*****************************************************************************    變量定義	--	關鍵字表****************************************************************************/KEYWORD	pkwKeyWord[MAXN_KEYWORD] ={	{ "", ID_UNUSED      	       		},	{ "STRINGTABLE", ID_STRTBL     		},	{ "MENU", ID_MENU           		},	{ "DIALOG", ID_DIALOG			},	{ "BEGIN", ID_BEGIN         		},	{ "END", ID_END             		},	{ "CAPTION", ID_CAPTION			},	{ "POPUP", ID_POPUP         		},	{ "MENUITEM", ID_MENUITEM   		},	{ "SEPARATOR", ID_SEPARATOR 		},	{ "BREAK", ID_BREAK         		},	{ "", ID_UNUSED             		},	{ "TEXT", ID_TEXT			},	{ "STATIC", ID_STATIC			},	{ "BUTTON", ID_BUTTON			},	{ "RADIOBUTTON", ID_RADIOBUTTON		},	{ "CHECKBOX", ID_CHECKBOX		},	{ "EDIT", ID_EDIT			},	{ "LISTBOX", ID_LISTBOX			},	{ "DS_TABSTOP", ID_DS_TABSTOP		},	{ "DS_GROUP", ID_DS_GROUP		},	{ "TS_LEFT", ID_TS_LEFT			},	{ "TS_RIGHT", ID_TS_RIGHT		},	{ "TS_CENTER", ID_TS_CENTER		},	{ "TS_HIGHLIGHT", ID_TS_HIGHLIGHT	},	{ "TS_REVERSE", ID_TS_REVERSE		},	{ "TS_UNDERLINE", ID_TS_UNDERLINE	},	{ "BS_DEFAULT", ID_BS_DEFAULT		},	{ "SS_FRAME", ID_SS_FRAME		},	{ "SS_HLINE", ID_SS_HLINE		},	{ "SS_VLINE", ID_SS_VLINE		},	{ "SS_HIGHLIGHT", ID_SS_HIGHLIGHT	},	{ "SS_REVERSE", ID_SS_REVERSE		},	{ "ES_ALPHA", ID_ES_ALPHA		},	{ "ES_DICIMAL", ID_ES_DICIMAL		},	{ "ES_LOWER", ID_ES_LOWER		},	{ "ES_UPPER", ID_ES_UPPER		},	{ "ES_AUTOSKIP", ID_ES_AUTOSKIP		},	{ "ES_PASSWORD", ID_ES_PASSWORD		},	{ "LBS_MULTIPLE", ID_LBS_MULTIPLE	}};short	nRESLineIndex;/*****************************************************************************    函數原型: RCError ( short nErrorID )**    功    能: 輸出編譯資源文件時的錯誤信息**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: short	nErrorID	錯誤信息索引號**    出口參數: 總為 OK**    實現算法:**    上層調用: DoResource**    下層調用: 無****************************************************************************/short	RCError ( short nErrorID ){	printf ( "Resource Compile error message -- Line: %d,  ErrorID: %d\n", nRESLineIndex, nErrorID );	switch ( nErrorID )	{	    case    ERR_RES_NOTKEYWORD :	/* 		*/		printf ( "\t不是關鍵字\n" );                break;	    case    ERR_RES_NOFILE     :		printf ( "\t文件未找到\n" );		break;	    case    ERR_RES_OPENFILE   :		printf ( "\t打開文件出錯\n" );		break;	    case    ERR_NOMEMORY       :		printf ( "\t沒有足夠的內存\n" );		break;	    case    ERR_RES_ENDOFBUF   :		printf ( "\t緩沖區結束\n" );		break;	    case    ERR_RES_SYNTAX     :		printf ( "\t語法錯誤\n" );		break;	    case    ERR_RES_DIGIT      :		printf ( "\t整數錯誤\n" );		break;	}	return ( OK );}/*****************************************************************************    函數原型: CheckKeyWord ( char *pWord )**    功    能: 查詢關鍵字表, 判斷一單詞是否為關鍵字.**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: char  	*pWord	--  待判斷的單詞**    出口參數: >0 該單詞是關鍵字, 返回值為關鍵字索引值*              <0 ERR_RES_NOTKEYWORD --  該單詞不是關鍵字**    實現算法: 查詢關鍵字表 pKeyWord**    上層調用:**    下層調用: 無****************************************************************************/short	CheckKeyWord ( char *pWord ){	short	i;	for ( i = 1; i < MAXN_KEYWORD; i++ )	  if ( strcmp ( pWord, pkwKeyWord[i].pName ) == 0 )	    return ( pkwKeyWord[i].nMacro );	return ( ERR_RES_NOTKEYWORD );}/*****************************************************************************    函數原型: SkipBlank ( char **ppRESBuf )**    功    能: 跳過緩沖區中的空格, 標點, 回車**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: char	**ppBuffer	緩沖區指針**    出口參數: OK			調用成功*              ERR_RES_ENDOFBUF 	緩沖區結束**    實現算法: 1. 跳過緩沖區中的空格, 標點, 回車*	       2. 如果跳過的是回車符, 則行計數器加 1**    上層調用: GetWord**    下層調用: 無****************************************************************************/short	SkipBlank ( char **ppRESBuf ){	while ( ( **ppRESBuf ) && ( isspace ( **ppRESBuf ) || ispunct ( **ppRESBuf ) ) )	{	  if ( **ppRESBuf == '\n' )	    nRESLineIndex ++;	  if ( **ppRESBuf == '"' )	    break;	  (*ppRESBuf) ++;	}	if ( **ppRESBuf )	  return ( OK );	else	  return ( ERR_RES_ENDOFBUF );}/*****************************************************************************    函數原型: GetWord ( char **ppRESBuf, char *pWord )**    功    能: 取緩沖區中的單詞 ( 以空格, 標點, 回車為分隔符 )**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: char	**ppBuffer	緩沖區指針*	       char	*pWord		單詞緩沖區**    出口參數: OK			調用成功*              ERR_RES_ENDOFBUF 	緩沖區結束**    實現算法:**    上層調用: CompileReource*	       CompileStrTbl*	       CompileMenu*	       CompileDialog**    下層調用: SkipBlank****************************************************************************/short	GetWord ( char **ppRESBuf, char *pWord ){	char 	*pTemp;	short	nErrorID;	pTemp = pWord;	nErrorID = SkipBlank ( ppRESBuf );		/* 跳過分隔符	*/	if ( nErrorID < OK )	  return ( nErrorID );	if ( **ppRESBuf == '"' )	  while ( 1 )	  {	    (*ppRESBuf) ++;	    if ( **ppRESBuf == '\"' )	    {	      (*ppRESBuf) ++;	      break;	    }	    *pTemp = **ppRESBuf;	    pTemp ++;	  }	else	  while ( (**ppRESBuf) && !isspace ( **ppRESBuf ) && ( !ispunct ( **ppRESBuf ) || (**ppRESBuf) == '_' ))	  {	    *pTemp = **ppRESBuf;	    (*ppRESBuf) ++;	    pTemp ++;	  }	*pTemp = 0;	return ( OK );}/*****************************************************************************    函數原型: WordToInt ( short *nResult, char *pWord )**    功    能: 單詞轉換為整數**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: short	*nResult	整數指針*	       char	*pWord		單詞緩沖區**    出口參數: OK			轉換成功*              ERR_RES_DIGIT		整數錯誤**    實現算法: 1. 檢查單字的合法性:     +100 或 -100*              2. 調用 atoi 函數進行轉換**    上層調用: CompileStrTbl*	       CompileMenu*	       CompileDialog**    下層調用: 無****************************************************************************/short	WordToInt ( short *nResult, char *pWord ){	char	*pTemp;	pTemp = pWord;	if ( ( *pTemp == '+' ) || ( *pTemp == '-' ) )	/* 前導正負號	*/	  pTemp ++;	while ( *pTemp )				/* 檢查合法性	*/	{	  if ( !isdigit ( *pTemp ) )	    return ( ERR_RES_DIGIT );	  pTemp ++;	}	*nResult = atoi ( pWord );			/* 轉換 	*/	return ( OK );}/*****************************************************************************    函數原型: CompileResource ( char **ppRESBuf )**    功    能: 編譯資源文件**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: char	**ppRESBuf	資源數據緩沖區**    出口參數: =0 編譯成功*	       <0 編譯失敗**    實現算法:**    上層調用:**    下層調用:****************************************************************************/short	CompileResource ( char **ppRESBuf ){	char	pWord[MAXL_RESWORD];	short	nErrorID;	void	*pResource;	RESOURCE rRES;	nRESLineIndex = 0;			/* 行計數器清零 	*/	while ( 1 )	{							/* 讀一個單詞	*/	  if ( GetWord ( ppRESBuf, pWord ) == ERR_RES_ENDOFBUF )	    break;                                      /* 緩沖區結束	*/	  nErrorID = CheckKeyWord ( pWord );		/* 檢查關鍵字	*/	  if ( nErrorID < OK )	    return ( nErrorID );			/* 非關鍵字, 錯	*/	  switch ( nErrorID )	  {	      case ID_STRTBL :   			/* 窗口資源	*/		  nErrorID = CompileStrTbl ( ppRESBuf, pWord, &pResource );		  if ( nErrorID < OK )		    return ( nErrorID );		  printf ( "\tSTRINGTABLE : %5d\t\tOK\n", nErrorID );		  rRES.nRESID = nErrorID;		  rRES.nType  = RT_STRTBL;		  rRES.pRES   = pResource;		  if ( ( nErrorID = AppendResource ( &rRES ) ) < OK )		    return ( nErrorID );		  rfhRESFileHead.nCount ++;		  break;	      case ID_MENU   :                          /* 菜單資源	*/		  nErrorID = CompileMenu ( ppRESBuf, pWord, &pResource );		  if ( nErrorID < OK )		    return ( nErrorID );		  printf ( "\tMENU	    : %5d\t\tOK\n", nErrorID );		  rRES.nRESID = nErrorID;		  rRES.nType  = RT_MENU;		  rRES.pRES   = pResource;		  if ( ( nErrorID = AppendResource ( &rRES ) ) < OK )		    return ( nErrorID );		  rfhRESFileHead.nCount ++;		  break;	      case ID_DIALOG :                          /* 對話框資源	*/		  nErrorID = CompileDialog ( ppRESBuf, pWord, &pResource );		  if ( nErrorID < OK )		    return ( nErrorID );		  printf ( "\tDIALOG	    : %5d\t\tOK\n", nErrorID );		  rRES.nRESID = nErrorID;		  rRES.nType  = RT_DIALOG;		  rRES.pRES   = pResource;		  if ( ( nErrorID = AppendResource ( &rRES ) ) < OK )		    return ( nErrorID );		  rfhRESFileHead.nCount ++;		  break;	      default     :				/* 其他關鍵字	*/		  return ( ERR_RES_SYNTAX );	  }	}	return ( OK );}/*****************************************************************************    函數原型: ReadResourceFile ( char *pRESFileName, char *pRESBuf )**    功    能: 將資源源文件中的數據讀入內存**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: char	*pFileName	文件名*	       char	*pRESBuf	資源數據內存映象**    出口參數: =0 調用成功*              <0 讀資源文件錯誤*		  ERR_RES_NOFILE	文件未找到*		  ERR_RES_OPENFILE	打開文件出錯*		  ERR_RES_MEMORY	沒有足夠的內存**    實現算法:**    上層調用:**    下層調用:****************************************************************************/short	ReadResourceFile ( char *pRESFileName, char **ppRESBuf ){	FILE	*pfRESFile;	long	lFileSize;	pfRESFile = fopen ( pRESFileName, "rb" );	if ( pfRESFile == (FILE*)NULL )			/* 打開文件錯 	*/	  return ( ERR_RES_OPENFILE );	fseek ( pfRESFile, 0, SEEK_END );               /* 計算文件長度	*/	lFileSize = ftell ( pfRESFile );	*ppRESBuf = (char *)malloc ( lFileSize + 1 );	if ( *ppRESBuf == (char *)NULL )		/* 沒有足夠內存	*/	{	  fclose ( pfRESFile );	  return ( ERR_NOMEMORY );	}	fseek ( pfRESFile, 0, SEEK_SET );		/* 移文件指針	*/	fread ( *ppRESBuf, lFileSize, 1, pfRESFile );	/* 讀文件	*/	(*ppRESBuf)[lFileSize] = 0;	fclose ( pfRESFile );				/* 關閉文件	*/	return ( OK );}/*****************************************************************************    函數原型: DoResource ( char *pFileName )**    功    能: 編譯資源文件**    編程人員: Zhu haibin**    編碼時間: 1994/09/07**    修改時間:**    入口參數: char	*pFileName	文件名**    出口參數: =0 調用成功*              <0 讀資源文件錯誤**    實現算法: 1. 將資源文件讀入內存*	       2. 調用 CompileResource 編譯資源數據**    上層調用:**    下層調用: ReadResourceFile*	       CompileResource****************************************************************************/short	DoResource ( char *pFileName ){	short	nErrorID;	char	*pRESBuf;	/* 讀資源源文件至內存 */	nErrorID = ReadResourceFile ( pFileName, &pRESBuf );	if ( nErrorID < OK )	{	  RCError ( nErrorID );	  return ( nErrorID );	}	/* 創建資源文件 */	if ( ( nErrorID = CreatRESFile ( pRESName ) ) < OK )	  return ( nErrorID );	/* 分析資源數據 */	nErrorID = CompileResource ( &pRESBuf );	if ( nErrorID < OK )	{	  RCError ( nErrorID );	  free ( pRESBuf );	  return ( nErrorID );	}	CloseRESFile ( TRUE );	free ( pRESBuf );	return ( OK );}short	main ( short argc, char *argv[] ){	char	*pTemp;	printf ( "PC-TMCS resource compile v1.0, Copyright 1994.\n" );	if ( argc < 2 )	{	  printf ( "Usage : RC ResourceFileName\n" );	  return ( OK );	}	strcpy ( pRESName, argv[1] );	pTemp = (char*)strrchr ( pRESName, '.' );	if ( pTemp != NULL )	  *pTemp = 0;	strcat ( pRESName, ".res" );	DoResource ( argv[1] );	return ( OK );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文一区二区| 日韩国产精品久久| 亚洲国产精品久久一线不卡| 天天综合日日夜夜精品| 国产自产v一区二区三区c| 亚洲福利电影网| 亚洲国产精品嫩草影院| 久久国内精品自在自线400部| 成人国产精品视频| 欧美美女bb生活片| 久久精品亚洲国产奇米99| 夜夜精品浪潮av一区二区三区| 免费看欧美女人艹b| eeuss鲁一区二区三区| 欧美无人高清视频在线观看| 欧美精品一区二区三区蜜桃视频| 亚洲日本在线视频观看| 九九精品视频在线看| 91亚洲大成网污www| 日韩一级二级三级| 亚洲欧美日韩综合aⅴ视频| 久久国产尿小便嘘嘘尿| 色偷偷一区二区三区| 久久麻豆一区二区| 日韩中文字幕av电影| 91在线一区二区三区| 精品国产1区2区3区| 亚洲国产成人av| 成人黄色大片在线观看| 精品欧美一区二区三区精品久久 | 日韩高清不卡一区二区| 国产精品网站在线播放| 色婷婷国产精品| 亚洲精品成人a在线观看| 免费国产亚洲视频| 色婷婷综合久久久中文字幕| 久久精品在这里| 美女久久久精品| 欧美日韩国产综合久久| 中文字幕日本乱码精品影院| 精品中文字幕一区二区| 欧美日韩高清影院| 尤物视频一区二区| 91最新地址在线播放| 欧美国产日韩一二三区| 狠狠色丁香婷婷综合久久片| 91.麻豆视频| 亚洲一区二区视频在线观看| 99国产精品99久久久久久| 欧美激情综合五月色丁香| 久久99精品久久久久久国产越南| 5858s免费视频成人| 亚洲成人自拍网| 欧洲av在线精品| 亚洲欧美视频在线观看| 97精品国产露脸对白| 中文字幕在线不卡一区| 国产·精品毛片| 日本一区二区免费在线| 国产精品亚洲视频| 亚洲精品在线网站| 国产在线观看一区二区| 久久久久久久久久看片| 韩国毛片一区二区三区| 2023国产精华国产精品| 激情五月播播久久久精品| 日韩天堂在线观看| 蜜臀av性久久久久蜜臀aⅴ| 91精品国产一区二区三区 | 欧美日韩你懂得| 亚洲永久免费视频| 欧美日韩一区高清| 日日夜夜精品视频免费| 91精品欧美综合在线观看最新| 天天做天天摸天天爽国产一区 | 欧美aⅴ一区二区三区视频| 欧美日韩高清在线播放| 日韩av一区二区三区四区| 777精品伊人久久久久大香线蕉| 亚洲国产一区二区在线播放| 欧美精品成人一区二区三区四区| 日韩激情一区二区| 欧美zozo另类异族| 国产精品18久久久久久久久| 久久久精品综合| 波多野结衣精品在线| 一区二区三区成人在线视频| 欧美日韩1区2区| 狠狠色综合色综合网络| 中文字幕第一区| 91电影在线观看| 日韩精品乱码免费| www国产精品av| 成人动漫av在线| 一区二区三区不卡视频| 欧美一区二区视频在线观看 | 中文字幕第一区综合| 色综合色狠狠天天综合色| 午夜久久久久久久久 | 成人激情动漫在线观看| 18成人在线观看| 欧美三级中文字| 久久国产精品一区二区| 国产精品嫩草影院com| 欧洲一区在线观看| 免费人成网站在线观看欧美高清| 久久久久国产免费免费| 97精品国产97久久久久久久久久久久| 亚洲高清三级视频| 亚洲精品一线二线三线无人区| 不卡一区二区在线| 青青草一区二区三区| 国产色产综合产在线视频| 色94色欧美sute亚洲13| 男女男精品视频网| 国产精品乱码久久久久久| 欧美三区在线观看| 国产成人免费视频网站高清观看视频| 中文字幕亚洲电影| 日韩欧美国产精品一区| 91美女片黄在线| 另类调教123区 | 欧美日韩国产经典色站一区二区三区| 水野朝阳av一区二区三区| 国产亚洲欧美一级| 欧美精品色一区二区三区| 懂色av噜噜一区二区三区av| 爽好久久久欧美精品| 成人欧美一区二区三区1314| 欧美一区二区三区白人| 91老司机福利 在线| 狠狠色丁香久久婷婷综合丁香| 亚洲一区二区三区国产| 午夜欧美2019年伦理| 国产精品毛片无遮挡高清| 日韩视频免费观看高清完整版 | 亚洲最快最全在线视频| 337p粉嫩大胆色噜噜噜噜亚洲 | 美女一区二区久久| 国产在线播放一区三区四| 中文久久乱码一区二区| 欧美肥胖老妇做爰| av影院午夜一区| 久久精品国产亚洲5555| 亚洲国产成人91porn| 中文字幕一区在线观看视频| 精品久久久久久久久久久院品网| 欧美亚洲禁片免费| 97久久超碰精品国产| 国产麻豆视频一区二区| 免费高清视频精品| 午夜a成v人精品| 亚洲精品成人悠悠色影视| 国产精品久久久久久久久快鸭| 日韩欧美不卡在线观看视频| 欧美老年两性高潮| 一本大道久久a久久精二百| 丁香啪啪综合成人亚洲小说| 激情综合色综合久久| 日韩av一区二区三区| 亚洲高清三级视频| 亚洲午夜免费福利视频| 自拍偷拍亚洲激情| 国产精品乱人伦中文| 国产亚洲精品7777| 国产欧美一区二区在线| 久久伊人中文字幕| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产精品一线二线三线精华| 日本大胆欧美人术艺术动态| 亚洲国产精品久久久久婷婷884| 亚洲婷婷综合色高清在线| 中文字幕在线视频一区| 亚洲欧美影音先锋| 中文字幕亚洲一区二区av在线| 国产精品少妇自拍| 中文字幕欧美日韩一区| 国产精品天干天干在线综合| 欧美国产在线观看| 国产精品久久影院| 亚洲欧洲一区二区在线播放| 中文字幕在线不卡一区| 亚洲欧美日韩一区二区| 亚洲女与黑人做爰| 亚洲一区二区三区小说| 亚洲一区在线看| 天堂久久一区二区三区| 日韩激情中文字幕| 久久狠狠亚洲综合| 国产乱码精品1区2区3区| 成人天堂资源www在线| va亚洲va日韩不卡在线观看| 色婷婷综合久色| 欧美年轻男男videosbes| 欧美一级理论片| xf在线a精品一区二区视频网站| 国产欧美日韩在线观看| 亚洲色图视频免费播放| 亚洲成人第一页| 99v久久综合狠狠综合久久|