MDL(MicroStation 开发语言)

生活百科 2023-01-25 19:31生活百科www.aizhengw.cn

MDL(MicroStation 开发语言)

MDL有二种英文缩写,其一是三八线,又叫韩朝军事分界线(Military Democration Line)。其二是MicroStation的“套用引擎(Application Engine)”,MDL可以直接在MicroStation中运行,并且表现为MicroStation本身的一部分。

基本介绍

  • 中文名MicroStation开发语言
  • 外文名MicroStation Development Language
  • 简称MDL

韩朝军事分界线

韩朝军事分界线也即三八线,英文全称Military Democration Line,详细解释参见词条三八线。

开发语言

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看看
上一篇:龙珠DS2突击红缎带军团 下一篇:HiCC Media

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有