MDL[朝韓軍事分界線]

MDL[朝韓軍事分界線]
MDL[朝韓軍事分界線]
更多義項 ▼ 收起列表 ▲

MDL:朝韓軍事分界線 DMZ:朝韓非軍事區

概述

MDL號是每一種化學反應和變化的唯一識別號。它的格式是:RXXXnnnnnnnn,其中R代表一種化學反應,XXX代表擁有該化學反應記錄的資料庫,nnnnnnnn是8個數字。

開發語言

MicroStation Development Language

全稱:MicroStation Development Language

MDL是MicroStation的“套用引擎(Application Engine)”,MDL可以直接在MicroStation中運行並且表現為MicroStation本身的一部分。許多MicroStation的命令都可以在MDL中套用。

MDL的組成

標準C (ANSI C) 程式設計語言(當然有某些限制和擴展);

一整套開發工具(包括C編譯器、連線器、程式庫、資源編譯器和資源庫、Make程式以及調試工具);

MicroStation內部的用於執行MDL應用程式的偽碼解釋器;

MicroStation內部的MDL調試器;

大量的運行庫函式;

可以改變MicroStation各種行為的鉤子(Hooks)函式,所謂鉤子函式是指那些在某種事件發生時被MicroStation自動執行的函式;

GUI開發工具,可以用於開發基於Motif的圖形用戶界面(包括:對話框、下拉選單等);

資源管理器;

運行及卸載MDL應用程式

在MicroStation命令視窗中運行MDL套用時,可以指定一個套用名稱和任務識別碼(Task ID),其中前者是必須的。具體使用方法如下:

MDL LOAD│SILENTLOAD [DEBUG│NODEBUG] <套用名> [,<任務識別碼>] [<參數>]

MicroStation將首先在當前目錄下查找用戶在命令行中指定的套用,如果找不到,再到由MicroStation環境變數MS_EXE和MS_MDL指定的目錄下去尋找。

如果用戶未指定應用程式的擴展名,MicroStation將首先尋找無擴展名的檔案,其次才是.MA檔案和.RSC檔案。因此運行時最好鍵入應用程式的全名。

卸載 MDL套用的命令為:

MDL UNLOAD│SILENTUNLOAD [<任務識別碼>]

MDL套用還可以在MDL對話框中裝載運行,通過MDL對話框也可以卸載MDL套用。

MDL的高級調用方式

在一個MDL套用中調用另一個MDL套用:使用MicroStation的內部函式mdlSystem_LoadMDLProgram;

在MicroStation初始化時(打開DGN檔案之前或者進入圖形模式之前)調入MDL套用:使用環境變數MS_INITAPPS和配置變數MS_DGNAPPS,如果要調用多個MDL程式,用分號(;)隔開,語法如下:MS_DGNAPPS=應用程式名[,任務識別碼] [/D];

在DGN檔案打開時運行MDL套用:使用mdlSystem_CreateStartupElement函式在DGN檔案中創建一個啟動元素(Start-up Element,類型代碼為66),即可在MicroStation打開DGN檔案後立即運行指定的MDL程式;

KEYIN套用:MDL KEYIN <套用名> <命令字串>。

MDL的高級卸載方式

在程式中使用標準C的 “exit”函式卸載程式;

MicroStation退出時可自動卸載MDL程式;

應用程式發生嚴重錯誤時會自動退出;

在一個套用中卸載另一個套用使用MicroStation內部函式mdlSystem_unloadMDLProgram;

在MDL調試器中使用QUIT命令可以卸載一個應用程式。

附:

MicroStation的開發工具

UCMs ………… User Commands

MicroCSL …… MicroStation Customer Support Library

MDL …………… MicroStation Development Language

MDL還是麥當勞的意思。麥當勞的英文全稱是McDonald's 現代的型男型女們通常也都會像暱稱肯德基KFC一樣的稱麥當勞做:MDL

MDL Memory Descriptor List

// I/O system definitions.

//

// Define a Memory Descriptor List (MDL)

//

// An MDL describes pages in a virtual buffer in terms of physical pages. The

// pages associated with the buffer are described in an array that is allocated

// just after the MDL header structure itself.

//

// One simply calculates the base of the array by adding one to the base

// MDL pointer:

//

// Pages = (PPFN_NUMBER) (Mdl + 1);

//

// Notice that while in the context of the subject thread, the base virtual

// address of a buffer mapped by an MDL may be referenced using the following:

//

// Mdl->StartVa | Mdl->ByteOffset

//

typedef struct _MDL {

struct _MDL *Next;

CSHORT Size;

CSHORT MdlFlags;

struct _EPROCESS *Process;

PVOID MappedSystemVa;

PVOID StartVa;

ULONG ByteCount;

ULONG ByteOffset;

} MDL, *PMDL;

#define MDL_MAPPED_TO_SYSTEM_VA 0x0001

#define MDL_PAGES_LOCKED 0x0002

#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004

#define MDL_ALLOCATED_FIXED_SIZE 0x0008

#define MDL_PARTIAL 0x0010

#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020

#define MDL_IO_PAGE_READ 0x0040

#define MDL_WRITE_OPERATION 0x0080

#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100

#define MDL_FREE_EXTRA_PTES 0x0200

#define MDL_DESCRIBES_AWE 0x0400

#define MDL_IO_SPACE 0x0800

#define MDL_NETWORK_HEADER 0x1000

#define MDL_MAPPING_CAN_FAIL 0x2000

#define MDL_ALLOCATED_MUST_SUCCEED 0x4000

#define MDL_MAPPING_FLAGS (MDL_MAPPED_TO_SYSTEM_VA | \

MDL_PAGES_LOCKED | \

MDL_SOURCE_IS_NONPAGED_POOL | \

MDL_PARTIAL_HAS_BEEN_MAPPED | \

MDL_PARENT_MAPPED_SYSTEM_VA | \

MDL_SYSTEM_VA | \

MDL_IO_SPACE )

模型包

簡介

MDL檔案並不是單純的模型檔案,他是一個檔案包,裡面包含模型,貼圖,所有動作,以及腳本。

編繪

MDL檔案並不是單純的模型檔案,他是一個檔案包,裡面包含模型,貼圖,所有動作,以及腳本。所以要想建立一個MDL檔案是很麻煩的,可以找一個現成的MDL檔案(從CS或者半條命里找),用Milkshape的外掛程式給解壓縮,選單tools-hl-decomp normal hl mdl file,。 解完後找到裡面的後綴SMD的檔案,其中一個是模型,用MS導入3DS,套用這個SMD里的骨骼,在MS里設定好權重,然後覆蓋這個SMD檔案。 接著選單tools-hl-Compile qc file 選擇剛才解壓縮出來的一個後綴QC的檔案把MDL重新打包就可以了。

.mdl

用rose生成的格式檔案,它支持UML用來畫用例圖,序列圖,狀態圖,類圖等

不能用powerdesigner打開 你可以下載一個rose看看

相關詞條

熱門詞條

聯絡我們