MDL 入门技术栈

随着 Bentley 二开的深入,对各种需求的不断增加,面向 .NET 提供的 API 已经有些不能满足需求了,这就迫使我们必须接触 MDL 的开发,利用 Bentley 面向 C++ 提供的丰富接口,达到我们的需求。

本教程基于优先社区的 一步步学习 MDL 教程,再根据自己的知识短板,进行其它相关知识的补充以及对教程的深入解读。

必备条件

  • VS2015 及以上
  • 安装 Microstation
  • 安装 Microstation SDK

SDK 目录介绍

  • bin 文件夹 该文件夹下含有生成最终应用程序所需的执行程序以及启动开发环境的批处理文件。这下面的执行程序主要是负责生成最终应用程序的资源部分的(关于资源的详细介绍请看后续文章),C++ 代码的编译和链接其实是调用 VS2015 中的 cl.exe 和 link.exe 的。

  • Documentation 文件夹 该文件夹下会有五个开发帮助文档,其中的 MicroStationApi.chm 就是我们要用到的 MDL C++ 帮助文档。其它四个是有关用 C# 开发 Mstn 应用程序的帮助文档。

  • Readme 文件夹 网页格式的 SDK Readme。双击其下的 index.html 文件在浏览器中打开。其中含有各个 SDK 版本的变化、如何安装 SDK 以及开发者注意事项等。

  • Migration 文件夹 将 V8i 升级到 CE 的一些升级指南。

  • examples 文件夹 大量的 MDL C++ 或 C# 样例代码。其中有一些是老旧的,一些是新写的(比如,在用到写命令工具时,如果是调用的 mdlState_xxx 类函数的,一定是老旧的例子,用派生于 DgnTool 类的应该就是比较新的)。最好读新的例子。

  • include 文件夹 C++ 头文件。

  • library 文件夹 C++ 库文件。

  • MigrationTools 文件夹 帮助您从 V8i 代码迁移到 CE 代码的一些工具。主要是通过 Python 程序对一些关键字做映射。您可以手工修改文件 0811to1000Published.remap 中的内容来扩展这个映射库。

  • mki 文件夹 制作文件的头文件(make include)。为 mke 文件服务的一些系统文件。

  • eula.pdf 文件 Bentley 软件最终用户许可协议(End User License Agreement)。大量的法律条文说明哪些行为是被法律禁止的。

  • MicroStationDeveloperShell.bat 文件 启动开发环境的批处理文件。

制作文件 mkefile

因为从未接触,总结稍详细,篇幅较多,转到 MDL 开发中如何创建 makefile 文件 阅读