You are on page 1of 3

This is where you can find and contribute to discussions, ideas, and other

information about 中國BDN社區.

Yongan.Fu Mon, May 7 2012 8:53 AM 0

本系列博客將由淺入深地幫助您學習MDL。按照本博客的步驟,相信您能很快地掌握這一開發MicroStation應用程
序的最主要方法。本博客有中、英文兩種版本,分別發佈在中國BDN社區博客和Bentley Developer Netwrok社區博
客。

第零章、介紹與必備條件
從MicroStation 4.0版開始就有MDL這一功能強大的開發手段了,那還要追溯到上世紀90年代初。那時的MDL是
MicroStation Development Language(MicroStation開發語言)的簡稱,它是Bentley公司基於C語言的一種擴展語
言,編譯器和鏈接器均由Bentley公司提供。最終生成的程序擴展名為.MA,是MicroStation Application的縮寫。我
們把這樣的開發方法叫做PureMDL,開發PureMDL您僅需要一個源代碼編輯器,其它的工具(編譯器、鏈接器以及
調試器)都由Bentley提供了。

隨著時間的推移,MDL也在與時俱進。今天的MDL已經完全可以基於C++來開發,因而我們可以採用微軟的Visual
Studio作為開發工具來生成本機代碼的DLL,同時,為了保留MDL的一些特性(如命令表、MDL特有的資源等),
仍然需要生成一個.MA文件。我們稱這種新的MDL為NativeCode MDL,這裡的MDL不再是MicroStation
Development Language而是MicroStation Development Library(MicroStation開發庫)。NativeCode MDL能使您採
用面向對象的編程方式來寫代碼,還能使您直接調用任何VC++中可以調用的功能。大多數新的MicroStation開發功
能(如XAttribute、點云、i-model等)都採用類的形式提供,這些新的功能也要求我們必須使用NativeCode MDL來
開發應用。PureMDL、NativeCode再加上新的開發手段Addins三者的比照如下圖所示。

為了進一步分清楚PureMDL和NativeCode MDL,下圖分別列出了兩者的生成過程。其中的mcomp.exe、
mlink.exe、rsctype.exe、rcomp.exe、rlib.exe都是由Bentley提供的執行程序,當您安裝完MicroStation SDK後
在…\MicroStation\mdl\bin目錄下就能找到它們。而cl.exe和link.exe則是來自VS的編譯器和連接器程序,在您的VS
的…\VC\bin目錄下能找到。從MicroStation SDK V8iSS2開始,所附帶的例子都改為NativeCode MDL了,而以前版
本的SDK中所附帶的例子還是PureMDL的。
生成PureMDL應用程序的過程

生成NativeCode MDL應用程序的過程

本系列博客中的代碼都將以NativeCode MDL來寫,所以請按下面步驟安裝我們的開發環境:
1、安裝Visual Studio 2005+SP1:
雖然大多數MicroStation的功能在VS2008和VS2010中也可使用,但有些特定的功能則必須在VS2005下才能正
常工作,所以,強烈建議您安裝VS2005及其補丁包1;
2、安裝MicroStation V8iSS3:從SS3開始,可以聯網自動安裝預安裝包了,如果您的網絡條件較差,還是建議您先
下載預安裝包後在行安裝;
3、安裝MicroStation SDK V8iSS3。

如果您還沒有VS2005,請與微軟公司聯繫。如果您還沒有MicroStation軟件及其開發包,您需要加入Bentley開發商
網絡(BDN)以獲取它們。詳細情況請與我(yongan.fu@bentley.com)聯繫。
如果您的操作系統是64位的Windows 7,則MicroStation及其開發包的默認安裝位置如下:
MicroStation程序文件:C:\Program Files (x86)\Bentley\MicroStation V8i (SELECTseries)
工作空間:C:\ProgramData\Bentley\MicroStation V8i (SELECTseries)\WorkSpace
SDK程序文件:C:\Program Files (x86)\Bentley\MicroStation V8i (SELECTseries)\mdl
SDK例子:「我的文檔」下的MDLProjects V8i (SELECTseries 3)

安裝完SDK後在C:\Program Files (x86)\Bentley\MicroStation V8i (SELECTseries)\Documentation目錄下會有三個重


要的開發幫助文檔:
① MDLProgrammerGuide.chm:該文檔是程序員指南,詳細介紹了什麼是MDL、如果建立並運行一個應用程序、
MicroStation中的資源、MFC對話框、i-model開發以及如何使用嚮導來開發應用程序;
②MDLAPIFunctionReference.chm:該文檔是MDL的C API參考,裡面列出了上千個基於C的MDL函數及其詳細說
明;
③MicroStationAPI.chm:該文檔是新的MDL C++ API參考,裡面列出了數百個在NativeCode MDL中可用的類。
在C:\Program Files (x86)\Bentley\MicroStation V8i (SELECTseries)\MicroStation目錄下有兩個重要開發文檔您可能
會用到:
④readme_microstationsdk.chm:MicroStation各版本中的MDL的變化;
⑤MicroStationVBA.chm:該文檔在安裝MicroStation後就存在了,不屬於SDK安裝的內容。其本意是為
MicroStationVBA編程服務的,不過,如果您採用COM方式編程的話,有關MicroStationDGN對象模型的內容可從該
文檔中查到。這一部分內容可參考我的另一系列博客Learning MicroStation Addins Step By Step。

在NativeCode MDL程序中,您既可以調用C API也可以調用C++ API。目前這兩種API並行使用,新功能基本上都是


在C++ API中才有,而有些舊有的功能只有在C API中才有。還有一些功能兩個裡面都有。我們在此系列博客中將儘
量使用C++ API來寫代碼。

You might also like