### MDL程序设计知识点解析 #### 一、MDL编程基本方法 **1.1 基本概念** - **1.1.1 MDL程序的结构:** MDL(MicroStation Development Language)是一种用于扩展MicroStation应用程序的功能的语言。MDL程序通常包括几个基本组成部分:头文件、变量声明、函数定义等。 - **1.1.2 注释:** 在MDL程序中添加注释是非常重要的,它可以提高代码的可读性和维护性。MDL支持两种类型的注释:单行注释和多行注释。单行注释使用`//`,而多行注释则使用`/*`和`*/`。 - **1.1.3 包含文件:** 包含文件是指在MDL程序中使用的其他文件,这些文件可能包含定义了特定函数或变量的头文件。例如,使用`#include "mdl.h"`来包含必要的头文件。 - **1.1.4 变量说明:** 变量是存储数据的基本单位,在MDL中,变量可以在函数内外声明。 - **1.1.5 变量类型:** MDL支持多种数据类型,包括整型(int)、字符型(char)、浮点型(float)等。 - **1.1.6 变量范围:** 变量的作用域决定了它们可以被访问的上下文。局部变量仅在其定义的函数内部可用,而全局变量则在整个程序中都可见。 - **1.1.7 MDL内部变量:** 这些是由MDL系统自动创建和管理的变量,如时间戳、错误码等。 **1.2 MDL函数** - **1.2.1 显示信息:** MDL提供了多个函数来输出信息到控制台或日志文件,例如`mdl_message()`。 - **1.3 结构和联合** - **1.3.1 元素的联合:** 在MDL中,可以通过联合(union)来表示不同类型的元素共享同一段内存空间。 - **1.4 指针** - **1.4.1 通过引用传递:** 使用指针可以将变量的地址传递给函数,从而在函数内部修改原始数据。 - **1.4.2 通过值传递:** 当函数参数不是指针时,通常会通过值传递,这意味着传递的是变量的副本,而不是变量本身。 - **1.5 MicroStation—状态机器:** MDL程序可以使用状态机的概念来管理应用程序的状态变化,这有助于构建复杂的交互式程序。 - **1.6 资源** - **1.6.1 命令表:** MDL程序中的命令表用于定义用户可以通过命令行接口调用的各种命令。 - **1.7 状态控制函数** - **1.7.1 用户函数:** 这些函数允许开发者自定义状态控制逻辑。 - **1.8 元素函数** - **1.8.1 元素生成函数:** 用于创建新的图形元素。 - **1.8.2 元素提取函数:** 用于从现有的图形模型中提取特定元素。 **1.9 第一章小结:** 本章主要介绍了MDL编程的基础概念和技术要点,为后续更深入的学习奠定了基础。 #### 二、编译MDL程序 **2.1 预处理指令** - **2.1.1 条件编译:** 条件编译指令(如`#if`、`#ifdef`)允许开发者根据不同的条件编译不同的代码块。 - **2.1.2 编译程序指令—#pragma:** `#pragma`指令用于向编译器提供有关如何处理后续代码的信息。 **2.2 开发流程** - **2.2.1 开发流程概述:** MDL程序的开发流程通常包括编写代码、编译、测试等多个步骤。 - **2.2.2 生成MDL应用:** 创建一个新的MDL项目,并组织好源代码。 - **2.2.3 编译MDL应用:** 使用编译器将MDL源代码转换成机器语言。 - **2.2.4 生成应用命令表:** 应用程序通常需要一个命令表来定义所有可用的命令及其行为。 - **2.2.5 信息表(Messagelist):** 记录编译过程中出现的警告和错误信息。 - **2.2.6 编译资源:** 编译过程中还需要处理各种资源文件,如图像和字符串资源。 - **2.2.7 链接MDL应用:** 将编译后的目标文件和其他库文件链接成最终的可执行文件。 - **2.2.8 使用资源管理程序:** 管理应用程序中使用的各种资源文件。 **2.3 bmake实用程序** - **2.3.1 制作文件(Makefile)的格式:** Makefile定义了如何编译和链接应用程序。 - **2.3.2 bmake宏命令:** 定义了一系列预定义的宏,用于简化Makefile的编写。 - **2.3.3 相关(Dependencies):** Makefile中定义的依赖关系,用于确定哪些文件需要重新编译。 - **2.3.4 推理规则:** Makefile中的规则用于指定如何编译特定类型的文件。 - **2.3.5 预定义的推理规则:** Makefile中默认包含的一些规则。 - **2.3.6 条件编译:** 在Makefile中也可以使用条件编译指令。 - **2.3.7 执行bmake:** 运行bmake工具来编译整个项目。 **2.4 执行MDL应用** - **2.5 调试程序** - **2.5.1 调试的设立:** 设置调试环境,以便能够逐行执行代码并查看变量的值。 - **2.5.2 具有调试功能的编译:** 使用特殊的编译选项来启用调试信息。 - **2.6 使用调试程序** - **2.6.1 安装调试程序:** 在开发环境中安装调试工具。 - **2.6.2 显示变量内容:** 在调试过程中查看变量的当前值。 - **2.7 错误信息:** 编译器和运行时错误信息可以帮助开发者诊断问题。 - **2.8 第二章小结:** 本章介绍了MDL程序的编译和调试过程,以及如何使用bmake工具来自动化这个过程。 #### 三、MDL对话框 **3.1 开发流程:** 创建对话框的过程通常涉及设计对话框界面、定义其行为以及编写相应的处理代码。 **3.2 对话管理程序** - **3.2.1 设计对话框:** 设计对话框界面,定义控件布局和行为。 - **3.3 生成对话框资源** - **3.3.1 对话框条目:** 定义对话框中各个控件的具体属性。 - **3.3.2 通用条目资源字段:** 控件共有的属性,如ID和类型。 - **3.3.3 文本对话条目:** 定义静态文本或编辑框控件。 - **3.3.4 选项按钮条目:** 定义复选框或单选按钮控件。 - **3.3.5 按钮条目:** 定义命令按钮。 - **3.3.6 开关按钮(ToggleButton)条目:** 定义具有开关功能的按钮。 **3.4 对话框通用函数** - **3.4.1 对话钩函数:** 在对话框的不同阶段执行自定义代码。 - **3.4.2 对话框通讯:** 通过消息机制实现对话框之间的通信。 **3.5 资源管理** - **3.5.1 用户优先选择资源:** 用户可以根据个人喜好选择不同的对话框资源。 - **3.5.2 存贮资源:** 管理和保存对话框资源。 **3.6 C表达式** - **3.6.1 类型发生器:** 生成特定类型的变量或值。 - **3.6.2 C表达式函数:** 支持在对话框中使用C语言的表达式。 - **3.6.3 图形组:** 定义对话框中的图形元素集合。 #### 四、元素的搜寻和操作 **4.1 元素搜寻** - **4.1.1 元素定位函数:** 用于查找特定的元素。 - **4.1.2 元素编辑函数:** 修改已存在的元素属性。 - **4.1.3 选择集函数:** 创建和操作元素的选择集。 **4.2 激活设置:** 设置元素的激活状态,控制元素是否可以被操作。 **4.3 元素位置搜寻** - **4.3.1 扫描函数:** 在模型中搜索符合特定条件的元素。 **4.4 围栅搜寻:** 在指定区域内查找元素。 #### 五、元素描述符 **5.1 元素描述符函数:** 提供了一种方式来描述和操作元素。 **5.2 复杂元素的操作:** 如何处理复杂的元素组合。 **5.3 工作文件:** 管理MDL程序的文件资源。 **5.4 孤立单元:** 处理独立于其他元素的单元。 #### 六、数学与几何运算 **6.1 浮点常量:** 在MDL程序中使用浮点数。 **6.2 向量几何:** 处理二维和三维空间中的向量。 **6.3 向量操作函数:** 实现向量的基本运算。 **6.4 当前变换:** 控制当前坐标系下的几何变换。 **6.5 数据格式:** 规定了MDL中数据的存储和传输格式。 **6.6 旋转矩阵函数:** 处理旋转操作。 #### 七、高级对话框 **7.1 对话条目** - **7.1.1 选项按钮条目:** 更复杂的控件设计。 **7.2 高级对话钩函数:** 实现更复杂的对话框逻辑。 **7.3 元素位置:** 控制元素在对话框中的位置。 **7.4 视图函数:** 操作和控制视图。 **7.5 视图钩函数:** 在视图更改时触发自定义事件。 **7.6 第七章小结:** 总结了高级对话框的设计和实现方法。 #### 八、输入队列 **8.1 工作方式:** 输入队列的运作原理。 **8.2 输入队列函数:** 操作输入队列的函数。 **8.3 队列元素:** 描述队列中的元素类型。 **8.4 命令过滤器:** 过滤输入命令。 **8.5 MDL应用的自动执行:** 自动化MDL应用的执行流程。 **8.6 取消命令类别:** 处理取消命令的情况。 **8.7 系统函数:** 提供对底层系统的访问。 **8.8 演示程序:** 展示输入队列的使用示例。 #### 九、走进NativeCode世界 **9.1 生成NativeCode程序** - **9.1.1 安装BentleyMFCApplicationWizard:** 安装用于创建NativeCode项目的工具。 - **9.1.2 建立一个NativeCode项目:** 创建一个新的项目。 - **9.1.3 编译链接生成DLL和MA:** 编译和链接生成可执行文件。 - **9.1.4 在MicroStation中运行:** 在MicroStation环境中运行NativeCode程序。 **9.2 NativeCode程序结构分析** - **9.2.1 MDL制作文件及资源文件分析:** 分析MDL项目中的文件结构。 - **9.2.2 MDL主程序文件分析:** 主程序文件的功能和结构。 - **9.2.3 MFC程序文件分析:** 分析使用MFC框架编写的程序文件。 **9.3 调试NativeCode程序** - **9.3.1 制作调试版本的NativeCode程序:** 如何创建包含调试信息的版本。 - **9.3.2 建立针对MicroStation的调试环境:** 设置调试环境以调试NativeCode程序。 通过以上章节的详细介绍,我们可以看到MDL程序设计不仅涵盖了基本的编程概念和技术,还涉及到了更为复杂的对话框设计、数学几何运算以及NativeCode的应用等方面。这对于希望深入了解并掌握MDL开发的开发者来说是非常宝贵的知识点。
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HP M1522NF 驱动
- linux下Makefile中动态链接库和静态链接库的生成与调用
- .net 统一数据库访问接口库,支持sql server ,db2,oracle,my sql,postgresql,sqlit
- 基于jsp+layui+bootstrap+springboot+mybaties+mysql的排课系统
- platform-tools-r33.0.0-windows
- 文本挖掘软件KH Coder使用指南
- java权限管理系统桌面客户端 基于javafx、javaSwing、spring boot 开发权限管理系统
- chrome Linux最新版本
- 策略模式,什么是策略模式
- 基于jsp+bootstrap+layui+servlet+mysql的教室信息管理系统