uuprog开发教程:烧写工程管理1
对于一个编程器来说,工程的管理是必须的,这个除了可以提供效率的同时,还有个重要的原因就是:工程保护,方便外包、代工、限制产量等。现在我们就讲解下怎么实现这个功能的。在讲解前,先说下文件的操作,这里牵涉到文件的创建、读取、定位、写入以及文件结构的定义等,可以说这篇教程也可以是文件操作的实例教程。文件的操作对于很多人来说,看着就头大,为什么呢,牵涉的知识量非常多,而且非常容易出错,往往读取和写入的东西根本不是自己想要的。为什么会出现这种情况呢?这就是文件结构定义问题了,而操作时定义数据结构长度又不对引起。所以这里还要用到vc++的调试功能,可以说调试是工程开发的精华,要想做个好的程序员必须掌握的技能之一。(对这个生疏的赶紧吃补药了)
programm project file简称ppf,这就是我们工程文件的后缀名,工程文件结构怎么定义呢?这就要取决于你要保存的信息,主要决定与设计者和需求者了。下面就是个简单工程的属性:
需求和设计有必然的联系,而隐含的属性在需求上是无法显现的,这个就需要设计者有非常缜密的思维。这里我们可以延伸出烧写文件保存,保密,校验,必须有安全权限才能修改以及工程计数等等。
其实工程操作的功能只有几个,无非打开,保存,设置等,关闭只是不保存就行。
要实现工程文件的保存,必须定义好文件结构,这样才好操作,下面就是文件头定义:
//Project File head
typedef struct tagProjectFileHeadStruct
{
char Appname;
char ProjectFileVer;
DWORD ProjectFileCRC;
}ProjectFileHeadStruct,*LPProjectFileHeadStruct;
每个文件都会有相应的文件头,便于查询管理,才能直到后面的文件体的内容。这里我们要用到上位机名,工程文件版本,工程文件crc。
文件体结构如下:
//Project File Struct
typedef struct tagProjectFileStruct
{
char ProjectName;
char DeviceName;
char ProjectNote;
DWORD BuffCheckCRC;
char CreateDate;
char EditDate;
char AccessPassword;
char SecurityPassword;
DWORD BuffSize;
char UUProgSN;
}ProjectFileStruct,*LPProjectFileStruct;
这里就比较复杂了,项目比较多,基本就是工程属性窗口的内容以及一些隐含的项目。
然后后面就是实际数据了,数据位置就靠这个结构体来定位,这个需要大家慢慢理解。
下面是uedit打开工程文件,可以看到文件的结构
下一节将继续讲解该部分的读写代码操作,欢迎继续关注。有兴趣的可以先下载源代码查看。
uuprog开发教程:烧写工程管理2
http://www.diybcq.com/thread-134349-1-1.html
(出处: DIY编程器网)
学习vc的朋友可以跟着liyf学习了。
页:
[1]