许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Bentley MicroStation二次开发入门:Hello World示例

Bentley MicroStation二次开发入门:Hello World示例

阅读数 2
点赞 0
article_banner

1.文中所用的软件版本分别为MicroStation V8i(SS3)Visual Studio 2015.

2.创建项目

   打开VS2015,新建类库,填写项目名,以及保存路径。(注意:SS3版本只能支持.NET Framework 3.5,因此需要修改,若不修改的话,无法在MicroStation软件中看到效果)
这里写图片描述

3.设置输出路径

   右键点击项目名,选择属性,打开属性窗口。将生成页面的输出路径改为MicroStation安装路径下的mdlapps文件夹。(如果Addins DLL文件不是生成到了这个mdlapps文件夹下而是生成到了你自己指定的一个文件夹下,要想在Mstn中加载它的话就需要设置配置变量MS_ADDINPATH指向你指定的这个路径。)
这里写图片描述

4.添加项目引用

   首先在 程序 集-框架中选择 System.Windows.Forms,进行添加。

   在浏览中添加MicroStation安装路径中的动态链接库,如下:

   …\MicroStation\ustation.dll

   …\MicroStation\assemblies\bentley.microstation.interfaces.1.0.dll

   …\MicroStation\assemblies\ECFramework\bentley.general.1.0.dll

这里写图片描述

   5.修改类名(可选)

   将class.cs更改成自己所需的名称

6.源代码

要使一个.NET程序集能够作为Addins在Mstn下运行,需要满足如下三个条件:

   ①包含有一个派生于Bentley.MicroStation.Addin的类;

   ②该派生类必须提供一个单参数(IntPtr类型的MDL描述符)的构造函数,且该构造函数需要链接到基类构造函数上;

   ③该派生类必须覆盖Addin基类中的虚方法Run()。

因此,源代码如下:

using System;
using System.Windows.Forms;

namespace hello
{
    internal sealed class hello : Bentley.MicroStation.AddIn
    {
        private hello(System.IntPtr mdlDesc) : base(mdlDesc)
        {
        }
        protected override int Run(string[] commandLine)
        {
            MessageBox.Show("Hello World");
            return 0;
        }
    }
}

7.生成解决方案

   按F6进行生成,若提示生成成功,则进行第八步,不然对代码进行纠错。

8.在MicroStation中进行验证。

   启动MicroStation,在菜单的实用工具栏中选中命令行。在命令行对话框中输入 mdl load 项目名,按回车后就可以得到Hello World的对话框。
这里写图片描述
这里写图片描述
这里写图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空