[分享]在VS2005(VS2008)下直接编写和编译Addins程序

[转载Bentley中文知识库原贴] gjgj1976:

本论坛上尽是关于MDL和VBA编程的话题,没有关于Addins的,现我就近期开发Addins程序的一些体会写出来,希望能和大家共同学习提高:

看了论坛上"MDL开发视频"的最后一期关于用DOTNET开发Addins应用程序后,收获很大,然后自己实验着编了几个小程序,居然成功了。感觉用DOTNET开发Addins有以下优点:
1.直接在VS2005(VS2008)下直接编写和调试,界面友好。
2.无需MDL编译环境,也不用NativeCode框架,也不用安装MicroStation SDK
3.缺点就是只能在XM以上版本中运行,V8 2004及以下版本不能用。
现以MicroStationAddinWizard程序生成框架为例,讲讲我开发程序的步骤:
1.下载本附件中的"MicroStationAddInWizard2005.rar 下载信 [文件大小:69.7 KB 下载次数:0]
点击浏览该文件:microstationaddinwizard2005.rar",

解压后,将"vcprojects"和"VCWizards"两个目录复制到VS2005(VS2008)安装目录的"VC"目录下。

本论坛中的"MicroStationAddInWizard2003.rar"也可以用,但有些小错误需要修改。本附件中的"MicroStationAddInWizard2005.rar"在我的电脑中的VISTA系统中使用通过。如果使用的是VS2008,请将"MicroStationAddInWizard.vsz"文件中的"Wizard=VsWizard.VsWizardEngine.8.0"改为"Wizard=VsWizard.VsWizardEngine.9.0"。

2.打开VS2005或VS2008,新建项目,选择VC++下的"MicroStationAddInWizard"模板,选择C sharp,后面的选项页中均打勾,完成后生成项目;

3.直接编译,提示一大堆错误,是缺少引用的原因。添加引用,将程序中凡"USING"语句后面的均是要引用的。

4.再进行编译,提示成功,生成".dll"文件。将生成的文件复制到XM的"mdlapps"目录下,用"MDL load"命令进行调用,提示程序装载成功,可是却没有出现命令。

5.进行以下修改,这是最重要的:
a.将"commands.xml"文件的"生成操作"属性改为"嵌入的资源";
b.主程序文件中的"[Bentley.MicroStation.AddInAttribute(MdlTaskID="×××××××××", KeyinTree="commands.xml")] 的commands.xml 前要加上主命令名(即namespace 关键字后面的)。

6.现在再编译、调用,哈哈,命令出现。成功!

至于怎么修改form,怎样调试方便,MDL开发视频文件中很清楚。

 

[转载Bentley中文知识库原贴] zhe_zly:太好了,在VS2005(VS2008)下直接编写和编译Addins程序,踏破铁鞋啊.
我也是在VS2005, 我们加为好友吧:QQ:272800212。

 

[转载Bentley中文知识库原贴] sbydo:那几个引用都找不到啊??

 

[转载Bentley中文知识库原贴] gjgj1976:在microstation XM的安装目录及其子目录assemblies中。

 

[转载Bentley中文知识库原贴] sbydo:谢谢!太感谢了。闭门造车就是慢,有事问问果然事半功倍。

 

[转载Bentley中文知识库原贴] smartflyer:这向导做得太差了,还要自己加引用,赶紧改改吧,把引用加上
你们自己的东西还做成这样,真是服了你们去看看AOTUCAD的,人家业余网友做得都比这个好FT死了。




 

 

Parents
  • [转载Bentley中文知识库原贴] MicroStation迷:Bentley的人都爱用Bmake生成最终的程序,所以,这个向导生成的项目也不是为了让我们在VS中直接Build的。需要你到MicroStation Developer Shell中执行Bmake就能自动编译了。
    用Bmake的好处是不需要你对VS做任何配置,而且无论是PureMDL、NativeCode还是这个Addins,都只需要你键入Bmake即可生成最终程序。

     

    [转载Bentley中文知识库原贴] smartflyer:好好改改向导吧,把这些修改直接加进去吧,这样就智能啦...可惜俺不会修改...唉......

     

    [转载Bentley中文知识库原贴] MicroStation迷:俺也不会呀,抽空学习学习怎样制作向导。我还有一个定义NativeCode向导的计划呢。

     


    This is a test

  • 转载Bentley中文知识库原贴] booolee:
    这是我的工程里手工添加的引用:

    但是添加了这些引用后,编译还是出错~

     


    This is a test

Reply Children
No Data