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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? resource.c

?? UNIX 資源文件編譯器
?? C
字號:
/*****************************************************************************    ------------	子系統(tǒng)名稱: 界面資源管理器*     RESOURCE.C*    ------------	模塊名稱  : 資源核心管理程序**    包括以下函數(shù):*     1. short	NewResource ( PRESOURCE *pprNew, short nCount )*     2. short	FreeResource ( short nRESID )**     3. short	CreatRESFile ( char * pFileName )*     4. short	OpenRESFile ( char *pFileName )*     5. short	CloseRESFile ( BOOL nWriteHead )**     6. short	LoadResource ( short nRESID, void **ppRES )*     7. short	AppendResource ( PRESOURCE prTemp )****************************************************************************/#include	"resource.h"/*****************************************************************************    全局變量定義****************************************************************************/FILE	*	pfRESFile;		/* 資源文件指針		*/RESFILEHEAD	rfhRESFileHead;		/* 資源文件頭		*/PRESOURCE	prRESTable;		/* 資源索引表		*/char		pRESVersion[MAXL_VERTEXT] =	/* 標(biāo)準(zhǔn)版本信息	*/		"PC-TMCS V1.0 RES\n";/*****************************************************************************    函數(shù)原型: NewResource ( PRESOURCE *prNew, short nCount )**    功    能: 創(chuàng)建 nCount 個(gè)資源索引項(xiàng)**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/13**    修改時(shí)間:**    入口參數(shù): PRESOURCE	prNew	  --  資源項(xiàng)指針**    出口參數(shù): OK		調(diào)用成功*	       ERR_NOMEMORY	沒有足夠的內(nèi)存**    實(shí)現(xiàn)算法: 調(diào)用 malloc 申請內(nèi)存**    上層調(diào)用:**    下層調(diào)用:****************************************************************************/short	NewResource ( PRESOURCE *pprNew, short nCount ){	if ( ( (*pprNew) = (PRESOURCE)malloc ( nCount * sizeof ( RESOURCE ) ) ) == (PRESOURCE)NULL )	  return ( ERR_NOMEMORY );	return ( OK );}/*****************************************************************************    函數(shù)原型: FreeResource ( short nRESID )**    功    能: 釋放一個(gè)資源**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/13**    修改時(shí)間:**    入口參數(shù): PRESOURCE	presTemp	  --  資源項(xiàng)指針**    出口參數(shù): OK		 調(diào)用成功*	       ERR_RES_INVALIDID 無效的資源標(biāo)識號**    實(shí)現(xiàn)算法: 1. 查找指定的標(biāo)識號*	       2. 釋放所對應(yīng)的資源**    上層調(diào)用:**    下層調(diào)用: FreeMenu*	       FreeDialog****************************************************************************/short	FreeResource ( short nRESID ){	short		i;	/* 查找指定的標(biāo)識號 */	for ( i = 0; i < rfhRESFileHead.nCount; i++ )	  if ( prRESTable[i].nRESID == nRESID )	    break;	/* 無效的標(biāo)識號 */	if ( i >= rfhRESFileHead.nCount )	  return ( ERR_RES_INVALIDID );	if ( prRESTable[i].pRES != (void*)NULL )	{	  switch ( prRESTable[i].nType )	  {	      case RT_STRTBL  :		  FreeStringTable ( (PSTRTBL)prRESTable[i].pRES );		  break;	      case RT_MENU    :		  FreeMenu ( (PMENU)prRESTable[i].pRES );		  break;	      case RT_DIALOG  :		  FreeDialog ( (PDIALOG)prRESTable[i].pRES );		  break;	  }	}	return ( OK );}/*****************************************************************************    函數(shù)原型: short	CreatRESFile ( char * pFileName )**    功    能: 創(chuàng)建一個(gè)資源文件**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/14**    修改時(shí)間:**    入口參數(shù): char	*pFileName	--	資源文件名**    出口參數(shù): OK		調(diào)用成功*              ERR_CFILE	創(chuàng)建文件錯(cuò)**    實(shí)現(xiàn)算法: 調(diào)用 fopen 創(chuàng)建文件**    上層調(diào)用:**    下層調(diào)用: 無****************************************************************************/short	CreatRESFile ( char * pFileName ){	/* 創(chuàng)建文件 */	if ( ( pfRESFile = fopen ( pFileName, "wb" ) ) == (FILE*)NULL )	  return ( ERR_CFILE );	/* 拷貝標(biāo)準(zhǔn)版本信息 */	strcpy ( rfhRESFileHead.pVersion, pRESVersion );	rfhRESFileHead.nCount  = 0;	rfhRESFileHead.nAddNum = 0;	/* 寫資源文件頭 */	fseek ( pfRESFile, 0, SEEK_SET );	if ( fwrite ( (void*)&rfhRESFileHead, sizeof ( RESFILEHEAD), 1, pfRESFile ) != 1 )	  return ( ERR_WFILE );	return ( OK );}/*****************************************************************************    函數(shù)原型: OpenRESFile ( char *pFileName )**    功    能: 打開一個(gè)已存在的資源文件, 檢查其合法性, 讀入資源索引**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/14**    修改時(shí)間:**    入口參數(shù): char	*pFileName	--	資源文件名**    出口參數(shù): OK		調(diào)用成功*	       ERR_OFILE	打開文件失敗*	       ERR_RFILE	讀文件失敗**    實(shí)現(xiàn)算法: 1. 以只讀方式打開文件*              2. 讀入文件頭并檢查其合法性*              3. 讀入資源索引**    上層調(diào)用:**    下層調(diào)用: NewResource****************************************************************************/short	OpenRESFile ( char *pFileName ){	short	i;	BYTE	nAddNum;	short	nErrorID;	/* 打開文件 */	if ( ( pfRESFile = fopen ( pFileName, "rb" ) ) == (FILE*)NULL )	  return ( ERR_OFILE );	/* 讀文件頭 */	if ( fread ( (void*)&rfhRESFileHead, sizeof ( RESFILEHEAD ), 1, pfRESFile ) != 1 )	  return ( ERR_RFILE );	/* 計(jì)算累加和 */	for ( i = nAddNum = 0; i < sizeof ( RESFILEHEAD ); i++ )	  nAddNum += ((BYTE *)&rfhRESFileHead)[i];	/* 非法資源文件 */	if ( nAddNum != 0 )	  return ( ERR_RES_INVALIDFILE );	/* 申請資源索引表內(nèi)存 */	if ( NewResource ( &prRESTable, rfhRESFileHead.nCount ) < OK )	  return ( ERR_NOMEMORY );	/* 讀資源索引表 */	for ( i = 0; i < rfhRESFileHead.nCount; i++ )	{	  if ( fread ( (void*)&prRESTable[i], sizeof ( RESOURCE ), 1, pfRESFile ) != 1 )	  {	    nErrorID = ERR_RFILE;	    break;	  }	  fseek ( pfRESFile, prRESTable[i].lNextOffset, SEEK_SET );	}	if ( i < rfhRESFileHead.nCount )	  return ( nErrorID );	/* 裝入所有字符串表資源 */	LoadStrTblResource ();	return ( OK );}/*****************************************************************************    函數(shù)原型: CloseRESFile ( BOOL nWriteHead )**    功    能: 關(guān)閉資源文件**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/14**    修改時(shí)間:**    入口參數(shù): BOOL	nWriteHead	--	是否需要重新寫入文件頭**    出口參數(shù): OK		調(diào)用成功*              ERR_WFILE	寫文件失敗**    實(shí)現(xiàn)算法: 1. 如果要重寫文件頭:*                   A 調(diào)整文件, 使文件頭部空出文件頭和索引表的空間*                   B 計(jì)算累加和*                   C 寫入文件頭*              2. 調(diào)用 fclose 關(guān)閉文件**    上層調(diào)用:**    下層調(diào)用: 無****************************************************************************/short	CloseRESFile ( BOOL nWriteHead ){	short	i;	BYTE	nAddNum;	/* 如果要寫文件頭 */	if ( nWriteHead )	{	  /* 計(jì)算累加和 */	  rfhRESFileHead.nAddNum = 0;	  for ( i = nAddNum = 0; i < sizeof ( RESFILEHEAD ) - 1; i++ )	    nAddNum += ((BYTE *)&rfhRESFileHead)[i];	  rfhRESFileHead.nAddNum = ~nAddNum + 1;	  /* 寫資源文件頭 */	  fseek ( pfRESFile, 0, SEEK_SET );	  if ( fwrite ( (void*)&rfhRESFileHead, sizeof ( RESFILEHEAD), 1, pfRESFile ) != 1 )	    return ( ERR_WFILE );	}	/* 關(guān)閉資源文件 */	fclose ( pfRESFile );	return ( OK );}/*****************************************************************************    函數(shù)原型: LoadResource ( short nRESID, void **ppRES )**    功    能: 從資源文件中讀取標(biāo)識號為 nRESID 的資源**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/15**    修改時(shí)間:**    入口參數(shù): short	nRESID	資源標(biāo)識號*	       void	**ppRES	資源地址**    出口參數(shù): OK		 調(diào)用成功, 資源指針返回在 ppRES 中*              ERR_RES_INVALIDID 無效的資源識別號*              ERR_RFILE	 讀文件失敗*	       ERR_NOMEMORY	 沒有足夠的內(nèi)存**    實(shí)現(xiàn)算法: 1. 在資源索引表中查找指定的識別號 nRESID*              2. 讀出資源**    上層調(diào)用:**    下層調(diào)用: 無****************************************************************************/short	LoadResource ( short nRESID, void **ppRES ){	short	i;	/* 在資源索引表中查找指定標(biāo)識號的資源索引項(xiàng) */	for ( i = 0; i < rfhRESFileHead.nCount; i++ )	  if ( prRESTable[i].nRESID == nRESID )	    break;	if ( i >= rfhRESFileHead.nCount )	  return ( ERR_RES_INVALIDID );	switch ( prRESTable[i].nType )	{	    case RT_MENU   :		if ( i == 0 )		  fseek ( pfRESFile, sizeof (RESFILEHEAD) + sizeof (RESOURCE), SEEK_SET );		else		  fseek ( pfRESFile, prRESTable[i].lRESOffset, SEEK_SET );		LoadMenu ( (PMENU*)&prRESTable[i].pRES, pfRESFile ) ;		break;	    case RT_DIALOG :		if ( i == 0 )		  fseek ( pfRESFile, sizeof ( RESFILEHEAD ) + sizeof ( RESOURCE ), SEEK_SET );		else		  fseek ( pfRESFile, prRESTable[i].lRESOffset, SEEK_SET );		LoadDialog ( (PDIALOG*)&prRESTable[i].pRES, pfRESFile );		break;	}	(*ppRES) = prRESTable[i].pRES;	return ( OK );}/*****************************************************************************    函數(shù)原型: AppendResource ( PRESOURCE prTemp )**    功    能: 向資源文件中追加一個(gè)資源**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/09/15**    修改時(shí)間:**    入口參數(shù): PRESOURCE	prTemp	--	資源指針**    出口參數(shù): OK		調(diào)用成功*              ERR_WFILE	寫文件失敗**    實(shí)現(xiàn)算法: 1. 寫入資源索引項(xiàng)*              2. 寫入資源數(shù)據(jù)**    上層調(diào)用:**    下層調(diào)用: 無****************************************************************************/short	AppendResource ( PRESOURCE prTemp ){	/* 將文件指針移到文件尾 */	fseek ( pfRESFile, 0, SEEK_END );	prTemp->lRESOffset = ftell ( pfRESFile ) + sizeof ( RESOURCE );	switch ( prTemp->nType )	{	    case RT_STRTBL :		prTemp->lNextOffset = prTemp->lRESOffset + StringTableSize ( (PSTRTBL)prTemp->pRES );		if ( fwrite ( prTemp, sizeof ( RESOURCE ), 1, pfRESFile ) != 1 )		  return ( ERR_WFILE );		return ( SaveStringTable ( (PSTRTBL)prTemp->pRES, pfRESFile ) );	    case RT_MENU   :		prTemp->lNextOffset = prTemp->lRESOffset + MenuSize ( (PMENU)prTemp->pRES );		if ( fwrite ( prTemp, sizeof ( RESOURCE ), 1, pfRESFile ) != 1 )		  return ( ERR_WFILE );		return ( SaveMenu ( (PMENU)prTemp->pRES, pfRESFile ) );	    case RT_DIALOG :		prTemp->lNextOffset = prTemp->lRESOffset + DialogSize ( (PDIALOG)prTemp->pRES );		if ( fwrite ( prTemp, sizeof ( RESOURCE ), 1, pfRESFile ) != 1 )		  return ( ERR_WFILE );		return ( SaveDialog ( (PDIALOG)prTemp->pRES, pfRESFile ) );	}	return ( OK );}/*****************************************************************************    函數(shù)原型: LoadStrTblResource ( void )**    功    能: 裝入所有字符串表資源**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/10/05**    修改時(shí)間:**    入口參數(shù): PRESOURCE	prTemp	--	資源指針**    出口參數(shù): OK		調(diào)用成功*              ERR_WFILE	寫文件失敗**    實(shí)現(xiàn)算法: 1. 寫入資源索引項(xiàng)*              2. 寫入資源數(shù)據(jù)**    上層調(diào)用:**    下層調(diào)用: 無****************************************************************************/short	LoadStrTblResource ( void ){	short		i;	short		nCount;	unsigned short	nBufSize;	nCount = nBufSize = nSysStrTblCount = 0;	for ( i = 0; i < rfhRESFileHead.nCount; i++ )	{	  if ( prRESTable[i].nType != RT_STRTBL )	    continue;	  if ( i == 0 )	    fseek ( pfRESFile, sizeof (RESFILEHEAD) + sizeof (RESOURCE), SEEK_SET );	  else	    fseek ( pfRESFile, prRESTable[i].lRESOffset, SEEK_SET );	  LoadStringTable ( (PSTRTBL*)&prRESTable[i].pRES, pfRESFile ) ;	  nCount   += ((PSTRTBL)prRESTable[i].pRES)->nCount;	  nBufSize += ((PSTRTBL)prRESTable[i].pRES)->nBufSize;	  pSysStrTbl[nSysStrTblCount] = (PSTRTBL)prRESTable[i].pRES;	  nSysStrTblCount ++;	}	return ( OK );}/*****************************************************************************    函數(shù)原型: LoadString ( short nID, char *pBuf, short nBufSize )**    功    能: 從字符串表資源中取出指定字符串**    編程人員: Zhu haibin**    編碼時(shí)間: 1994/10/05**    修改時(shí)間:**    入口參數(shù): short	nID	--	字符串標(biāo)識號*	       char	*pBuf	--	字符串緩沖區(qū)*	       short	nBufSize --	字符串緩沖區(qū)長度**    出口參數(shù): 總為 OK**    實(shí)現(xiàn)算法:**    上層調(diào)用: FreeResource**    下層調(diào)用: 無****************************************************************************/short	LoadString ( short nID, char *pBuf, short nBufSize ){	short	i, j;	for ( i = 0; i < nSysStrTblCount; i++ )	{	  for ( j = 0; j < pSysStrTbl[i]->nCount; j ++ )	    if ( nID == pSysStrTbl[i]->pStrTblIndex[j].nID )	    {	      fseek ( pfRESFile, pSysStrTbl[i]->lFPos + pSysStrTbl[i]->pStrTblIndex[j].nOffset, SEEK_SET );	      if ( nBufSize > pSysStrTbl[i]->pStrTblIndex[j].nLen )		nBufSize = pSysStrTbl[i]->pStrTblIndex[j].nLen;	      fread ( pBuf, sizeof ( char ), nBufSize, pfRESFile );	      pBuf[nBufSize] = 0;	      return ( nBufSize );	    }	}	return ( FALSE );}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久一卡二卡| 欧美日韩一区二区三区在线看| 欧美va在线播放| 久久国产精品99久久人人澡| 欧美一区二区黄色| 国内不卡的二区三区中文字幕| 精品国产一区二区国模嫣然| 国产一区二区在线观看视频| 国产欧美一区二区三区在线看蜜臀| 成人免费毛片片v| 亚洲欧美激情在线| 欧美精品少妇一区二区三区| 九九热在线视频观看这里只有精品| 久久影院视频免费| 色哟哟在线观看一区二区三区| 亚洲综合色网站| 精品国产乱码久久久久久1区2区| 精品在线观看视频| 国产精品不卡在线观看| 欧美午夜精品一区二区三区| 蜜乳av一区二区| 国产精品免费视频一区| 欧美在线一二三| 国产在线播放一区| 一区二区成人在线| 亚洲精品一区二区三区精华液 | 性久久久久久久久久久久| 欧美一卡二卡在线| 成人黄色大片在线观看| 日本中文字幕一区二区有限公司| 久久久久99精品国产片| 欧美日韩免费观看一区三区| 国模娜娜一区二区三区| 一区二区高清免费观看影视大全| 2023国产精华国产精品| 色综合久久66| 国产乱子伦一区二区三区国色天香| 亚洲精品国产精华液| 久久久一区二区三区捆绑**| 欧美日韩国产首页| 不卡高清视频专区| 国产一区二区三区美女| 亚洲国产你懂的| 中文在线资源观看网站视频免费不卡| 欧美日韩黄色影视| 99re热这里只有精品免费视频| 麻豆国产欧美日韩综合精品二区 | 欧美午夜不卡在线观看免费| 国产精品1024久久| 麻豆91免费看| 午夜精品福利一区二区蜜股av| 国产精品第13页| 久久精品一区二区三区不卡牛牛| 3d成人h动漫网站入口| 91美女精品福利| 成人av午夜影院| 国产成人精品aa毛片| 狠狠色综合播放一区二区| 日韩av午夜在线观看| 亚洲自拍偷拍九九九| 亚洲免费在线视频一区 二区| 久久美女高清视频| 2024国产精品视频| 精品久久久久久久久久久久包黑料 | 久久美女高清视频| 日韩久久精品一区| 91精品欧美综合在线观看最新 | 95精品视频在线| 成人h动漫精品一区二区| 国产高清在线精品| 国内久久婷婷综合| 国产一区二区主播在线| 久久 天天综合| 国产乱码字幕精品高清av| 久草精品在线观看| 激情综合网av| 精品一二三四区| 麻豆国产一区二区| 久久不见久久见免费视频1| 捆绑调教一区二区三区| 久久99精品国产91久久来源| 免费三级欧美电影| 久久精品久久99精品久久| 黑人巨大精品欧美黑白配亚洲| 蜜臀av一区二区在线免费观看| 免费在线看成人av| 九九视频精品免费| 成人免费视频一区二区| eeuss鲁一区二区三区| 99免费精品视频| 欧美综合视频在线观看| 91麻豆精品国产91久久久久久| 3751色影院一区二区三区| 精品奇米国产一区二区三区| www国产精品av| 中文字幕在线观看一区| 亚洲天天做日日做天天谢日日欢| 一区二区日韩av| 男男gaygay亚洲| 国产九色精品成人porny | 欧美这里有精品| 日韩一区二区在线播放| 久久午夜电影网| 综合久久一区二区三区| 视频一区二区欧美| 国模大尺度一区二区三区| 91网站最新地址| 91精品欧美一区二区三区综合在 | 亚洲欧洲综合另类| 日本不卡不码高清免费观看| 粉嫩高潮美女一区二区三区| 欧美羞羞免费网站| 日韩欧美综合一区| 国产精品久久久久久久久动漫| 一个色综合网站| 久久不见久久见中文字幕免费| www.爱久久.com| 91.xcao| 亚洲天堂成人在线观看| 日韩不卡一区二区| a在线播放不卡| 日韩视频一区二区三区| **欧美大码日韩| 奇米综合一区二区三区精品视频 | 国产激情视频一区二区三区欧美| 91蝌蚪porny九色| 2021中文字幕一区亚洲| 亚洲一区二区欧美日韩| 国产福利一区二区三区视频| 欧美日韩国产综合久久| 中文字幕二三区不卡| 日韩成人一区二区| 色欧美片视频在线观看| 国产欧美一区二区三区在线看蜜臀| 亚洲一区在线视频观看| 成人免费福利片| 精品区一区二区| 日韩影院免费视频| 95精品视频在线| 亚洲国产精品av| 久久se精品一区精品二区| 欧洲精品一区二区三区在线观看| 欧美国产一区在线| 激情综合网av| 日韩欧美久久久| 三级成人在线视频| 欧美主播一区二区三区美女| 欧美激情综合在线| 美女爽到高潮91| 7777精品伊人久久久大香线蕉完整版 | 日本高清成人免费播放| 中文字幕巨乱亚洲| 国产精品1区2区| 国产性天天综合网| 激情六月婷婷综合| 精品国产三级a在线观看| 午夜精品一区二区三区免费视频| 91美女精品福利| 亚洲天堂av老司机| 色综合视频在线观看| 亚洲欧洲一区二区三区| gogo大胆日本视频一区| 日本一二三不卡| 成人的网站免费观看| 国产精品美女久久久久高潮| 国产丶欧美丶日本不卡视频| 欧美成人一区二区| 久久国产麻豆精品| 欧美精品一区二区三区蜜桃| 老司机精品视频在线| 精品久久人人做人人爱| 激情综合色播五月| 精品国产髙清在线看国产毛片 | 高清国产午夜精品久久久久久| 久久久久久久精| 国产一区二区精品久久99| 久久伊人中文字幕| 岛国精品在线播放| 中文字幕精品—区二区四季| 99久久99精品久久久久久| 一区二区三区国产| 538prom精品视频线放| 精品一区在线看| 国产精品久久久久aaaa樱花| 色噜噜狠狠一区二区三区果冻| 婷婷综合在线观看| 久久免费看少妇高潮| av网站免费线看精品| 亚洲电影一级黄| 日韩欧美黄色影院| 粉嫩13p一区二区三区| 亚洲激情在线激情| 欧美精品18+| 国产精品影视网| 亚洲另类春色校园小说| 91精品国产91热久久久做人人| 国产一区二区三区在线观看免费视频 | 香港成人在线视频| 精品99一区二区| 91视频国产资源|