迷你5207专属论坛

注册

 

发新话题 回复该主题

[mininote] MiniNote1.0代码分析系列第一篇 [复制链接]

发表者

MiniNote1.0代码分析系列第一篇


一、写此系列的目的

个人感觉MiniNote比官方及其他的一个日记软件要好用。我也用过其他的软件,功能虽多但不实用,有些好功能如果处理的不好就是多余功能,造成浪费。

2个月以来MiniNote没有再更新,期间购买了M8,也许是因为买了M8的原因吧,没有兴趣再做这个软件了。主要是不知道开发这个软件为了什么,帮助别人?还是帮助自己?

看到许多朋友借助MiniNote1.0的源代码在学习M8平台软件的开发,之前写过一个关于自己学习M8开发的总结系列文章,还是得到了许多朋友的肯定,从基础入手提高了自己也帮助了别人。既然MiniNote1.0有帮助于是就决定写几篇文章介绍一下MiniNote的源代码,以便新手朋友能够更好的理解。

二、MiniNote1.0的框架介绍

2.1软件功能

MiniNote最初是设计成日记软件,但在开发过程中扩展了一点点功能,增加了文本文件的读写。也就是说MiniNote就二个功能模块:

日志
Ø日志列表
Ø新增日志
Ø编辑日志
Ø删除日志

文本编辑
Ø查看、编辑txtini

看到这是不是觉得软件非常简单?是的本来就没啥东西,熟手用不了一天就能写出来,而且功能还要强大些。

2.2软件技术结构

对于MiniNote来说主要的工作就是和文本打交道,无论是写日志还是编辑文本文件,所以技术核心在于字符的处理上。而别一方面的重点就是界面咯,这一块全部使用了M8SDKMZFC。随便弄了一张图以便理解:


如图所示,MiniNote的核心是基于MZFC和文本存取器两个组件,当然MZFC是一套组件。但在软件中其实就是一种类型的玩意,在此就不做区分了。是的,就这么简点的软件。

2.2源码包的文档结构

讲完了大的东西,对于拿到源码包的朋友可能会对在阅读代码时理解各个代码作用苦恼吧?是呀,看别人的程序确实有点难过,特别是MiniNote写的还比较乱。在这里就整体的说明一下各个文件夹和文件的作用,这样需要时直奔文件就好了。先上图:


这是整个源码包的文档结构图,当然除去VS带上的哪些东西哈。主要分成两部分:
1、软件源代码工程(MiniNote)
1.1头文件

头文件是C/C++语言所必须的,就是类型的申明文件。对于一个良好的程序实体应该都会有头文件与实现文件,头文件可供外部调用使用,而源文件只做实现。所以大家会看到M8SDK里会提供一堆的头文件,这样就可以调用里面的功能了。每个头文件说明如下表:

  文件名
  
  说明
  
  CpubFunction.h
  
  公共函数
  
  M8Note.h
  
  主程序头文件,即软件入口
  
  M8NoteEditWnd.h
  
  文本阅读及编辑窗口
  
  M8NoteFileReader.h
  
  文件存读器
  
  M8NoteMainWnd.h
  
  主窗口,即显示日记列表窗口
  
  M8NotePubDefine.h
  
  程序公共定义单元
  
  MiniFileDialog.h
  
  文件对话框:打开、保存等
  
  MiniUiList.h
  
  日志列表控件
  
  Resource.h
  
  资源单元
  

(表1


1.2源文件

除了一些纯定义的头文件外,一般头文件都会对应一个源代码文件,C++中的源代码文件都是.CPP文件。所有的程序逻辑及算法算在源文件里面实现了。MiniNote中的源代码文件上表中的头文件可以进行对应。参考表1

1.3资源文件

对于像图标、字符、菜单等文件资源可以放入资源文件中,软件编绎时一并带上,这样软件就能在运行的时候显示各种资源了。所以大家会发现很多程序就一个exe,但是一运行就会有各种图片和图标之类。在MiniNote中使用的资源文件就一个:

  文件名
  
  说明
  
  MiniNote.rc
  
  资源文件哇,MiniNote1.0中只有版本控制的内容
  

(表2



2、打包CAB工程(MiniNoteSetup)
Visual stidio工具提供了cab的打包工程,这个可以方便程序员为自己的程序制作cabMiniNote采用了这个模板工具,但并不是非常好用,很多时候还是用别的工具打包会方便一些。所以就不多介绍这个东西了。有兴趣的朋友自己建一个试试就知道用法了。

篇结:
本文大体的讲了下MiniNote1.0咯,比较粗略,接下来的文章可能会具体一些,如果可能的话我会把几个重要的单元文件分别写文章介绍。目前能确定的是M8NoteFileReader这个是会主要讲讲的。
由于工作原因关系白天不能上网,只能晚上回家才能上网。点滴论坛也是我个人提供的一个论坛平台,没有其他人在维护,所以写文章也可以解决有朋友想交流找不到人的矛盾,呵呵。所以在论坛或者QQ中的提问只要我能回答都会解答。当然如果高手能指教自然是更期待了。希望大家看过后觉得好帮顶顶,留几个交流方式:
QQ89387228
QQ群:58105627
Email:mini188.com@qq.com
当然,可以到http://www.mini188.com上发贴,我在上论坛时会进行回复。

下载pdf浏览:
MiniNote1.0代码分析.pdf (, 下载次数:613)




作者:5207
出处:http://www.mini188.com
本文版权归作者所有,欢迎转载请注明出处,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    已有1评分我要评分查看所有评分

    本主题由 皇帝 5207 于 2010-12-27 22:53:31 执行 设置高亮 操作
    分享 转发
    相信与不相信都是矛盾的.  5207宣!欢迎您来到点滴论坛
    TOP
    沙发

    下下来看看~~~
    TOP
    凳子

    好东东,正适合入门看的。。。
    TOP
    地板

    回复 3# simon 的帖子

    嗯。如果时间够的话,近期还可能写一个入门系列。。
    相信与不相信都是矛盾的.  5207宣!欢迎您来到点滴论坛
    TOP
    发新话题 回复该主题