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文件 阅读