<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[星情天空 - C/C++]]></title>
<link>http://www.bluekevin.com/</link>
<description><![CDATA[★星情天空-给自已一个自由的空间!★]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[kevin.xkm@gmail.com(bluekevin)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>星情天空</title>
	<url>http://www.bluekevin.com/images/logos.gif</url>
	<link>http://www.bluekevin.com/</link>
	<description>星情天空</description>
</image>

			<item>
			<link>http://www.bluekevin.com/article.asp?id=65</link>
			<title><![CDATA[菜单项目系统2（MenuPROSys_v2.0）]]></title>
			<author>kevin.xkm@gmail.com(sinof)</author>
			<category><![CDATA[C/C++]]></category>
			<pubDate>Mon,31 Mar 2008 20:48:25 +0800</pubDate>
			<guid>http://www.bluekevin.com/default.asp?id=65</guid>
		<description><![CDATA[<strong>菜单项目系统2</strong><br/><br/>比较完备的一个菜单项目系统，<br/>通过该项目能系统的掌握程序设计的一些方法。<br/>（本例着重体现 资源重组-模组驱动 模式）<br/><br/>该项目框架设计提取自一嵌入式系统的菜单架构，<br/>具备如下特征：<br/><br/>1，仅适用简单的函数纯绘制式的实现屏显功能；<br/><br/>2，采用多种方式进行框架的设计及兼容性修改：<br/>&nbsp;&nbsp; *, 状态-事件机制 state-event<br/>&nbsp;&nbsp; *, 请求-服务机制 request-service<br/>&nbsp;&nbsp; *, 参数-设置机制 params-setup<br/>&nbsp;&nbsp; *, 抽象-实现机制 abstract-implement<br/>&nbsp;&nbsp; *, 层级-分适机制 HPI-TPI-API<br/>&nbsp;&nbsp; *, 消息-管理机制 Message-Handle<br/><br/>3，实现了由繁琐到简洁，由编写到重组的的设计；<br/><br/>4，良好的编码风格及工程化的资源组织形式；<br/><br/><br/><img src="http://www.bluekevin.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.bluekevin.com/rainwing/MenuPROSys/MenuPROSys_v2.0.rar" target="_blank">点击下载此文件</a><br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.bluekevin.com/article.asp?id=63</link>
			<title><![CDATA[C++例程库（C++LEL_v1.2）]]></title>
			<author>kevin.xkm@gmail.com(sinof)</author>
			<category><![CDATA[C/C++]]></category>
			<pubDate>Fri,24 Aug 2007 21:30:47 +0800</pubDate>
			<guid>http://www.bluekevin.com/default.asp?id=63</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;这是本人在学习和工作中编写整理的一些C++语言的例程，希望能对C++语言的学习和使用者有所帮助。<br/><br/><img src="http://www.bluekevin.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.bluekevin.com/rainwing/CHM/C++LEL_v1.2.rar" target="_blank">点击下载此文件</a>]]></description>
		</item>
		
			<item>
			<link>http://www.bluekevin.com/article.asp?id=47</link>
			<title><![CDATA[命令行方式的文件加密和解密]]></title>
			<author>kevin.xkm@gmail.com(sinof)</author>
			<category><![CDATA[C/C++]]></category>
			<pubDate>Sat,21 Apr 2007 11:08:26 +0800</pubDate>
			<guid>http://www.bluekevin.com/default.asp?id=47</guid>
		<description><![CDATA[// 命令行方式的文件加密和解密<br/><br/>//****************************************************<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How to use<br/>//****************************************************<br/>/*<br/>The comand line is like this:<br/>&nbsp;&nbsp;&nbsp;&nbsp;command line:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crypt [cpParams] [cpFile] [cpKey]<br/>&nbsp;&nbsp;&nbsp;&nbsp;arguments description:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpParams :&nbsp;&nbsp;/E|/e == Encode;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/D|/d == Decode;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/?&nbsp;&nbsp;&nbsp;&nbsp;== help information;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;== unknown params.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpFile&nbsp;&nbsp; :&nbsp;&nbsp;file which needed Encode o&#114; Decode<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpKey&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;key which used for Encoding o&#114; Decoding<br/>*/<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.bluekevin.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>/*<br/>&nbsp;&nbsp;&nbsp;&nbsp;$Workfile:&nbsp;&nbsp;&nbsp;&nbsp;Crypt.C&nbsp;&nbsp;&nbsp;&nbsp;$<br/>&nbsp;&nbsp;&nbsp;&nbsp;$Revision:&nbsp;&nbsp;&nbsp;&nbsp;v1.2&nbsp;&nbsp;&nbsp;&nbsp;$<br/>&nbsp;&nbsp;&nbsp;&nbsp;$Date:&nbsp;&nbsp;&nbsp;&nbsp; 04/17/2007 23:14:55&nbsp;&nbsp;&nbsp;&nbsp;$<br/>*/<br/><br/>/*******************************************************************************<br/>// I N C L U D E&nbsp;&nbsp;&nbsp;&nbsp;F I L E S<br/>/******************************************************************************/<br/>#include &lt;stdio.h&gt;<br/>#include &lt;string.h&gt;<br/><br/>/*******************************************************************************<br/>// M A C R O&nbsp;&nbsp;&nbsp;&nbsp;D E F I N I T I O N S<br/>/******************************************************************************/<br/>/* Debug */ <br/>#define DEBUG_PRINTFx<br/><br/>#ifdef DEBUG_PRINTF<br/>&nbsp;&nbsp;&nbsp;&nbsp;#define debug_printf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf<br/>#else<br/>&nbsp;&nbsp;&nbsp;&nbsp;#define debug_printf(s, a)<br/>#endif<br/><br/>/* Version */<br/>#define CURRENT_VERSION&nbsp;&nbsp;&nbsp;&nbsp; &#34;v1.2&#34;<br/>#define M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1024L*1024L)<br/>/* String */<br/>#define PARAM_DFT&nbsp;&nbsp; &#34;&#34;<br/>#define KEY_DFT&nbsp;&nbsp;&nbsp;&nbsp; &#34;crypt&#34;<br/>#define LOG_FILE&nbsp;&nbsp;&nbsp;&nbsp;KEY_DFT##&#34;.log&#34;<br/>#define EXE_FILE&nbsp;&nbsp;&nbsp;&nbsp;KEY_DFT##&#34;.exe&#34;<br/><br/>/* Conststant */<br/>#define SIZE_ONE_BYTE&nbsp;&nbsp; 1<br/>#define COUNT_ONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br/><br/>/*******************************************************************************<br/>//&nbsp;&nbsp;E N U M E R A T I O N&nbsp;&nbsp;&nbsp;&nbsp;D E F I N I T I O N S<br/>/******************************************************************************/<br/>typedef enum encrypt_mode<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;MODE_EnCode,<br/>&nbsp;&nbsp;&nbsp;&nbsp;MODE_DeCode,<br/>&nbsp;&nbsp;&nbsp;&nbsp;MODE_Help,<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>}Em_EncryptMode;<br/><br/>typedef enum err_ret<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_NONE,<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_cpName,<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_cpParams,<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_cpFile,<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_cpKey,<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_Params,<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_FOpen,<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_FRead,<br/>&nbsp;&nbsp;&nbsp;&nbsp;ERR_FWrite,<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>} Em_ErrRet;<br/><br/>/*******************************************************************************<br/>// F U N C T I O N&nbsp;&nbsp;&nbsp;&nbsp;P R O T O T Y P E S<br/>/******************************************************************************/<br/>unsigned long flen(FILE *fp_file);<br/>unsigned char ParamsParse(char *cpParams);<br/>int CheckArgv(char *cpName, char *cpParams, char *cpFile, char *cpKey);<br/>int ByteCryptFile(unsigned int uiMode, char *cpFile, char *cpKey);<br/>int WriteToLogFile(char *cpName, char *cpParams, char *cpFile, char *cpKey);<br/>void PrintVersion(void);<br/>void PrintHelpInfo(void);<br/><br/>/*******************************************************************************<br/>//&nbsp;&nbsp;C O D E S<br/>/******************************************************************************/<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;main<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;int argc, char *argv[]<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;int<br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :<br/>//<br/>/******************************************************************************/<br/>int main(int argc, char *argv[])<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;int iRet;<br/>&nbsp;&nbsp;&nbsp;&nbsp;char *cpName, *cpParams, *cpFile, *cpKey;&nbsp;&nbsp;&nbsp;&nbsp; /* Arguments */<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* Print version */<br/>&nbsp;&nbsp;&nbsp;&nbsp;PrintVersion();<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* Program arguments parse */<br/>&nbsp;&nbsp;&nbsp;&nbsp;cpName = argv[0];<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (argc == 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if (argc == 4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{ cpParams = argv[1];&nbsp;&nbsp;&nbsp;&nbsp;cpFile = argv[2];&nbsp;&nbsp;&nbsp;&nbsp; cpKey = argv[3]; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if (argc == 3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{ cpParams = argv[1];&nbsp;&nbsp;&nbsp;&nbsp;cpFile = argv[2];&nbsp;&nbsp;&nbsp;&nbsp; cpKey = KEY_DFT; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if (argc == 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{ cpParams = argv[1];&nbsp;&nbsp;&nbsp;&nbsp;cpFile = &#34;&#34;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpKey = &#34;&#34;; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if (argc == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{ cpParams = &#34;&#34;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cpFile = &#34;&#34;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpKey = &#34;&#34;; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;{}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpName = %s&nbsp;&nbsp;\n&#34;, cpName);<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpParams = %s&nbsp;&nbsp;\n&#34;, cpParams);<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpFile = %s&nbsp;&nbsp;\n&#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpKey = %s&nbsp;&nbsp;\n&#34;, cpKey);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned int uiMode;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uiMode = ParamsParse(cpParams);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch (uiMode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case MODE_Help:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintHelpInfo();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_NONE;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case MODE_EnCode:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case MODE_DeCode:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = CheckArgv(cpName, cpParams, cpFile, cpKey);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!iRet)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ByteCryptFile(uiMode, cpFile, cpKey);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!iRet)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = WriteToLogFile(cpName, cpParams, cpFile, cpKey);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;unknown params. \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_Params;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (!iRet)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;:) Successful !&#34;, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;:( Failed ?&#34;, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;return iRet;<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;PrintVersion<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;void<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;void<br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :&nbsp;&nbsp;&nbsp;&nbsp;<br/>//<br/>/******************************************************************************/<br/>void PrintVersion(void)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;%s %s \n&#34;, EXE_FILE, CURRENT_VERSION);<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;PrintHelpInfo<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;void<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;void<br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :&nbsp;&nbsp;&nbsp;&nbsp;<br/>//<br/>/******************************************************************************/<br/>void PrintHelpInfo(void)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;The comand line is like this: \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;command line: \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;crypt [cpParams] [cpFile] [cpKey] \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;arguments description: \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;cpParams :&nbsp;&nbsp;/E|/e == Encode; \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/D|/d == Decode; \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/?&nbsp;&nbsp;&nbsp;&nbsp;== help information; \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;== unknown params. \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;cpFile&nbsp;&nbsp; :&nbsp;&nbsp;file which needed Encode o&#114; Decode \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&nbsp;&nbsp;&nbsp;&nbsp;cpKey&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;key which used for Encoding o&#114; Decoding \n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;&#34;);<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;ParamsParse<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;char *cpParams<br/>//<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;unsigned char : MODE_EnCode == indicate encode mode;<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MODE_DeCode == indicate decode mode;<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;== indicate invalid mode. <br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :&nbsp;&nbsp;&nbsp;&nbsp;<br/>//<br/>/******************************************************************************/<br/>unsigned char ParamsParse(char *cpParams)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;unsigned char ucRet = 0xFF;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if (*cpParams == &#39;/&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++cpParams;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch (*cpParams)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;E&#39;: case &#39;e&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ucRet = MODE_EnCode;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;D&#39;: case &#39;d&#39;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ucRet = MODE_DeCode;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;?&#39;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ucRet = MODE_Help;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return ucRet;<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;flen<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;FILE *fp_file<br/>//<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;unsigned long <br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :&nbsp;&nbsp;&nbsp;&nbsp;<br/>//<br/>/******************************************************************************/<br/>unsigned long flen(FILE *fp_file)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;unsigned long ulCur, ulLen;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ulCur = ftell(fp_file);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;fseek(fp_file, 0L, SEEK_END);<br/>&nbsp;&nbsp;&nbsp;&nbsp;ulLen = ftell(fp_file);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;fseek(fp_file, ulCur, SEEK_SET);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return ulLen;<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;CheckArgv<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;char *cpName, char *cpParams, char *cpFile, char *cpKey<br/>//<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;int : 0&nbsp;&nbsp;&nbsp;&nbsp;== indicate successfully;<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else == indicate hava error occured.<br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :&nbsp;&nbsp;&nbsp;&nbsp;Check argv is valid o&#114; not<br/>//<br/>/******************************************************************************/<br/>int CheckArgv(char *cpName, char *cpParams, char *cpFile, char *cpKey)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;int iRet = ERR_NONE;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/* cpName checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ((cpName == NULL) || (*cpName) == 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_cpName;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;cpName(NULL) o&#114; *cpName(0)&nbsp;&nbsp;\n&#34;, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* cpParams checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if ((cpParams == NULL) || (*cpParams) == 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_cpParams;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;cpParams(NULL) o&#114; *cpParams(0)&nbsp;&nbsp;\n&#34;, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* cpFile checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if ((cpFile == NULL) || (*cpFile) == 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_cpFile;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;cpFile(NULL) o&#114; *cpFile(0)&nbsp;&nbsp;\n&#34;, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* cpKey checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if ((cpKey == NULL) || (*cpKey) == 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_cpKey;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;cpKey(NULL) o&#114; *cpKey(0)&nbsp;&nbsp;\n&#34;, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return iRet;<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;ByteCryptFile<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;char *cpName, char *cpParams, char *cpFile, char *cpKey<br/>//<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;int : 0&nbsp;&nbsp;&nbsp;&nbsp;== indicate successfully;<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else == indicate hava error occured.<br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :<br/>//<br/>/******************************************************************************/<br/>int ByteCryptFile(unsigned int uiMode, char *cpFile, char *cpKey)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;int iRet = ERR_NONE;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;FILE *fpRead, *fpWrite;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;fpWrite = fpRead = fopen(cpFile, &#34;rb+&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* fpWrite checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ((fpWrite == NULL))<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_FOpen;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;can&#39;t open file cpFile(%s)&nbsp;&nbsp;\n&#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned char ucBuff, ucKey;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned long ulCur, ulLen;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned int uiIndex;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ulLen = flen(fpRead);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpFile(%s) &#39;s length &#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;: 0x%x&nbsp;&nbsp;\n&#34;, (unsigned long)ulLen);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uiIndex = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* only process 1M bytes data */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ulLen &gt; 1 * M) ulLen = 1 * M;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (ulCur = 0; ulCur &lt; ulLen; ulCur++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fseek(fpRead, ulCur, SEEK_SET);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* read checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fread(&amp;ucBuff, SIZE_ONE_BYTE, COUNT_ONE, fpRead) != COUNT_ONE)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_FRead;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;cpFile(%s) fread error!&nbsp;&nbsp;\n&#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* key loop */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uiIndex = (uiIndex &lt; strlen(cpKey)) ? uiIndex+1 : 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ucKey = *(cpKey + uiIndex);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* byte crypt */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ucBuff != 0)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&#160;&#160;&#160;&#160;/* ignore 0 because of the key maybe known by hex display */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ucBuff = (uiMode == MODE_EnCode) ? (unsigned char)(ucBuff + ucKey) :<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (uiMode == MODE_DeCode) ? (unsigned char)(ucBuff - ucKey) :<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unsigned char)(ucBuff ^ 0)&nbsp;&nbsp;&nbsp;&nbsp; ;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fseek(fpRead, ulCur, SEEK_SET);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* write checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fwrite(&amp;ucBuff, SIZE_ONE_BYTE, COUNT_ONE, fpWrite) != COUNT_ONE)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_FWrite;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;cpFile(%s) fwrite error!&nbsp;&nbsp;\n&#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;crypting...0x%x \r&#34;, (unsigned long)ulCur);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;crypting...0x%x \n&#34;, (unsigned long)ulCur);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose(fpWrite);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose(fpRead);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;ByteCryptFile : iRet = %d&nbsp;&nbsp;\n&#34;, iRet);<br/>&nbsp;&nbsp;&nbsp;&nbsp;return iRet;<br/>}<br/><br/>/*******************************************************************************<br/>//<br/>// Function&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;WriteToLogFile<br/>// Params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;char *cpName, char *cpParams, char *cpFile, char *cpKey<br/>//<br/>// Returns&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;int : 0&nbsp;&nbsp;&nbsp;&nbsp;== indicate successfully;<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else == indicate hava error occured.<br/>// Global&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;None<br/>// Description :&nbsp;&nbsp;&nbsp;&nbsp;Write information to the log file<br/>//<br/>/******************************************************************************/<br/>int WriteToLogFile(char *cpName, char *cpParams, char *cpFile, char *cpKey)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;int iRet = ERR_NONE;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;FILE *fpWrite;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;fpWrite = fopen(LOG_FILE, &#34;a+&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* fpWrite checking... */<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ((fpWrite == NULL))<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iRet = ERR_FOpen;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* can&#39;t open file */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;can&#39;t open file cpFile(%s)&nbsp;&nbsp;\n&#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(fpWrite, &#34;%s\t%s\t%s\t%d\n&#34;, cpName, cpParams, cpFile, strlen(cpKey));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose(fpWrite);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpName = %s&nbsp;&nbsp;\n&#34;, cpName);<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpParams = %s&nbsp;&nbsp;\n&#34;, cpParams);<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpFile = %s&nbsp;&nbsp;\n&#34;, cpFile);<br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;cpKey = %s&nbsp;&nbsp;\n&#34;, cpKey);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;debug_printf(&#34;WriteToLogFile : iRet = %d&nbsp;&nbsp;\n&#34;, iRet);<br/>&nbsp;&nbsp;&nbsp;&nbsp;return iRet;<br/>}<br/><br/><br/></div></div>]]></description>
		</item>
		
</channel>
</rss>


