词条 | MDL |
释义 | MDL是MicroStation的开发语言(MicroStation Development Language MDL的组成 运行及卸载MDL应用程序 MDL的高级调用方式 MDL的高级卸载方式 MDL Memory Descriptor List) MDL概述MDL号是每一种化学反应和变化的唯一识别号。它的格式是:RXXXnnnnnnnn,其中R代表一种化学反应,XXX代表拥有该化学反应记录的数据库,nnnnnnnn是8个数字。 MDL号MDL号是每一种化学反应和变化的唯一识别号。它的格式是:RXXXnnnnnnnn,其中R代表一种化学反应,XXX代表拥有该化学反应记录的数据库,nnnnnnnn是8个数字。 MDL是MicroStation的开发语言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模型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看看 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。