Vasm ≈ Visual Masm
从09年年初下定决心写个 IDE 开始, 到现在先后写过3版,而且没有一次将全部功能连接起来测试的
思来想去, 工程就这么放下了, 问题遇到了不少, 不过都被一一解决了, 唯一没有解决的问题, 也是致使工程迟迟无法顺利开工的原因在于,
工程的结构设计有问题, 在工程的前期设计中, 由于没有充分考虑到工程的复杂性, 使得现在的工程结构设计上已经走入死胡同一般
从今天起, 准备将 IDE 工程开发过程写下来, 公布点开发技巧, 顺便请各位看官, 路人帮忙出个主意, 有关程序设计上的问题,
我想参考下大家的意见.
好了... 开始了
1. 简单介绍下 Vasm
Vasm 是一个可视化的 Masm 开发工具, 他是一个 IDE , 不是一个编译器, Vasm 紧紧依靠 MS 的Masm CL,Link 对代码进行编译连接,生成 exe,这个过程Vasm不参与,
而仅仅对编译前的所有工作进行管理, 帮助开发者制作各种类型的 PE 文档.
Vasm 在完成之后将很象 VB6 ,当然仅仅是使用感觉上, 没错, 确实是这样. Vasm 的一个目标就是用自己的技术方法实现 VB6 的等量或高于 IDE 开发方案
Vasm 将是通用 IDE , 加载不同的配置文件, Vasm 将会完美的运行在 Win95+ 的各个Windows平台上. 他拥有朴素, 但简洁的界面, 强大的管理功能, 帮助
专业以及非专业 Coder 完成他们的工作.
Vasm 的第1正式应用版将以 VB6 为编写语言(Sorry, 只会一点vb6,和简单的汇编) , 正式版之后, Vasm 将以 Vasm(Masm) 自己开发自己.
2. Vasm - IDE 的制作方法以及将要实现的功能分类
Vasm 的功能在上面已经简单介绍了一些, 下面将要说的是,实现这些功能的细节.
1. Vasm 的模块
1.1 窗口设计器
1.2 代码编辑器
1.3 调试器
1.4 存储模块
1.5 参数编辑器
1.6 工程创建脚本编辑器
1.7 全局管理模块
1.8 ..
1.1.1 窗口设计器的功能
1. 窗口设计器, 能够实现 Win32 GUI 标准控件的编辑功能. 紧密结合代码编辑器, 提供标准的额外接口, 实现窗口控件编辑, 标准接口代码生成
窗口设计器是 IDE 设计一大难点之一, 也是一个成功的 IDE 的标志性外观元素之一, 一个好的 IDE ,他的窗口编辑器一定也是一个效率极佳
外观优美的,功能强大的编辑器.
2. 技术实现方案
1. SDI 标准的单文档窗口生成器
由于采用 VB6 编写, 窗口生成器可以采用VB6提供的默认窗口做为标准窗口. 而我们的窗口设计器又是 IDE 的一个模块,那么为了实现更好的
模块式开发的聚合度,体现出现代科技先进性,同时也为之后的升级改造留有空间, 窗口设计器将以 VB6 控件的方式编写.
编写窗口设计器其实说简单也简单, 说难也难, 但绝非象一般人所想像的那样, 拉几个vb控件藏到窗口中, 需要编辑什么控件就显示什么控件
如果是这样, 我们的工作还有必要做吗? 虽然这个时代讲究效率, 可是那么垃圾的玩意, 自己好意思拿出来给大家用吗? 这不是为了糊口而
糊弄别人的玩意, 而是体现你对 Win32 编程的熟知程度, 体现一个高手和菜鸟差距的时候到了.
具体的实现方法, 我当然不会在这里公布出来, 有兴趣的朋友来我的QQ 群一起来探讨吧, 如果有兴趣参与本工程的制作, 请与我联系.
哈哈, 什么都不说, 那么还有什么可写的呢. 所以还是要说一些东西的.
下面我把技术问题提出来, 而不写出答案, 这些问题即是技术难点, 同时也是 IDE 编写必须要注意的技术要点.
1. 窗口中的控件.
2. 控件的编辑.
3. 控件各种属性的编辑, 以及属性存储和自动化动态修改输出.
4. 选中控件
5. 如果你能意识到比较流行的制作方法, 那么你也应该能理解, 编辑控件时只在3个消息之间切换,状态却近似无限多的感觉是多么难受。
注意, VASM 是集窗口编辑器和代码编辑器于一身的 IDE, 并非其中任一模块的继承者, 所以问题要综合考虑.
Vasm 既不是象 ResEd.exe 那样的简单的窗口编辑器,
Vasm 也不是象 radasm.exe editpuls.exe 那样的简单的代码编辑器.
以上3点如果, 你能够实现了, 那么一个简单的控件设计器你就能够实现了, 当然我不是反对垃圾做法, 但我认为那是垃圾.
贴图3张, 小小的展示下 Vasm 的窗口设计器
今天就说到这里, 下次继续。