添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
心软的铁板烧  ·  The rise of the super ...·  5 月前    · 
没有腹肌的香菇  ·  lupa · PyPI·  10 月前    · 
乖乖的感冒药  ·  bash - getopts - how ...·  1 年前    · 
率性的米饭  ·  word批注批量导出_头条·  1 年前    · 
【问1】:MicroStation目前支持哪几种开发方式?
【答】:主要有VBA、MDL(C/C++)、Addins(.NET)。还有旧式的MicroStation BASIC等。 【问2】:什么是MDL ?
【答】:MDL是MicroStation Development Language的缩写,翻译过来就是"MicroStation开发语言"。现在正逐渐变为MicroStation Development Library(MicroStation开发库)。它原来是一套API函数加上C语言再加上Bentley自己的编译器和链接器,我们称之为PureMDL(纯MDL)。现在正逐渐降为库的地位,因为我们可以用微软的VC++直接调用这些API函数来开发了。 【问3】:PureMDL和NativeCode有什么区别 ?
【答】:PureMDL和NativeCode是目前用MDL开发MicroStation应用的两种方式。正如1中所述,PureMDL用C语言的语法写程序,用Bentley提供的编译器和链接器生成程序,最终可执行的文件扩展名为MA (MicroStation Application的缩写)。而NativeCode则是用C++(当然主要是指微软的VC++)写程序,用微软的编译器和链接器生成程序,最终可执行的文件为DLL。由于还需要MA作为桥梁,所以,用NativeCode开发时最终生成的执行程序是DLL+MA。 【问4】:用NativeCode开发时对话框是用MFC对话框还是继续使用MDL资源定义?
【答】:两者都可以,但各有利弊。MFC对话框适合那些熟悉MFC的用户,在MFC对话框中能嵌入各种控件。但MFC对话框和MicroStation总有"两张皮"的感觉,在MFC对话框中不能直接嵌入MicroStation中的控件,而且也要受到MicroStation Dialog Manager的控制。MDL资源定义的对话框和MicroStation浑然天成,能在这种对话框中直接嵌入MicroStation的各种控件,缺点是没有可视化的设计界面,需要你一行行自己写(当然主要是复制、粘贴、修改了)。实际上,MicroStation自身的大多数界面(菜单、工具栏、对话框等)都是用MDL资源写出来的。有些界面逐渐开始用Winform来写,如那个新式的Element Information对话框。 [转载Bentley中文知识库原贴] oneman: 谜兄,能不能编写一个最简单的PureMDL程序,把编写的程序文件和编译过程都用视频录制下来,让我们这些初学者学习?否则,真的很难入门。
这么多的概念对于我们从来没有接触过MDL的爱好者用处不大,我需要基本的入门过程学习,可是,无论是教程还是录像都不能满足需要。学了这么久,我还是编译不了自己的第一个程序,很沮丧的。
当然,我会C语言编程。 [转载Bentley中文知识库原贴] MicroStation迷:你安装完MicroStation SDK V8XM后会有一个MDLProjects目录,下面带有大量PureMDL的例子。按如下步骤可生成可执行的ma程序。
①修改SDK中的一个Bug: 修改C:\Program Files\Bentley\MicroStation\mdl\includes\compilers.mki中的第29行为:COMPENVMKI_DIR = $(_MakeFilePath)
②启动MicroStation Developer Shell, 会出现一个黑窗口;
③用DOS命令进到...\MDLProjects\dlogdemo目录下,键入如下命令生成dlogdemo.ma
bmake -dNO_COMPILERS_MKI
④启动MicroStation, 加载dlogdemo看一看人家程序的效果。然后再分析dlogdemo中每个源程序文件的每一行的含义。 MDL的开发如果都要从最基本的每个细节学起来确实内容太多。我不知道您想要一个什么样的入门程序,只是一个类似HelloWorld的程序能行吗? 我所理解的编译过程就是:编写主程序文件 .mc,运行mcomp命令(当然通不过了)。可是在视频录像里面,编译好像只有一个步骤,就是运行bmake,然后就有.ma文件了。但是我试了试却不行。借这个机会,希望看完视频后能照葫芦画瓢,完成并通过一个.ma程序。个人认为,完成这一步之后,MDL才能慢慢理解,然后就可以一步步深入了。 先谢过了! [转载Bentley中文知识库原贴] MicroStation迷:执行bmake命令就相当于你在VS中选择"生成项目"一样。Bmake程序会在当前目录中查找一个和目录名相同的一个MKE文件(制作文件),然后按照MKE文件中指定的生成项目的步骤来工作,所以,你除了一个.mc外,至少还需要一个mke文件即可。
(有空时再详细写出步骤吧。最近太忙) #----------------------------------------------------------------------
# HelloWorld.MKE date: 2008.08
#---------------------------------------------------------------------- appName = HelloWorld baseDir = ./
privateInc = $(baseDir) %include mdl.mki #----------------------------------------------------------------------
# Define symbol for files included in our link and resource merge
#---------------------------------------------------------------------- appObjs = $(o)$(appName).mo \
$(mdlLibs)mdllib.dlo $(mdlLibs)ditemlib.dlo $(mdlLibs)mtg.dlo appRscs = $(o)$(appName).mp #----------------------------------------------------------------------
# Create needed output directories if they don't exist
#----------------------------------------------------------------------
$(o)$(tstdir) : $(o)$(tstdir) #---------------------------------------------
# Compile and link MDL Application
#---------------------------------------------
$(o)$(appName).mo: $(baseDir)$(appName).mc $(o)$(appName).mp: $(appObjs)
$(msg)
>$(o)make.opt
$(linkOpts)
$(appObjs)
$(MLinkCmd) @$(o)make.opt
~time #---------------------------------------------
# Merge Objects into one file
#---------------------------------------------
$(mdlapps)$(appName).ma: $(appRscs)
$(msg)
>$(o)make.opt
$(appRscs)
$(RLibCmd) @$(o)make.opt
~time HelloWorld.mc文件内容如下:
/*-------------------------------------------------------------+
| HelloWorld.mc |
+-------------------------------------------------------------*/
#include
void main (void)
mdlDialog_dmsgsPrint ("Hello World !");