首页 DirectX函数大全

DirectX函数大全

举报
开通vip

DirectX函数大全 1 网络游戏开发 — DirectXDirectXDirectX DirectX 函数归纳总结 230032300323003 23003 李翔 李 森 2 DirectXDirectXDirectX DirectX 目录 1.D3D基本框架.................................... 1 创建 D3D对象.................................................... 2 获取显卡显示模式..................

DirectX函数大全
1 网络游戏开发 — DirectXDirectXDirectX DirectX 函数归纳总结 230032300323003 23003 李翔 李 森 2 DirectXDirectXDirectX DirectX 目录 1.D3D基本框架.................................... 1 创建 D3D对象.................................................... 2 获取显卡显示模式................................................. 2 创建 D3D设备接口................................................. 2 开始渲染和结束渲染................................................2 清空图形绘制区................................................... 2 屏幕反转........................................................ 2 2.绘制基本图形.................................... 1 绘制基本图形 ....................................... 4 灵活定点格式(FVF)............................................... 2 基本图元的绘制.................................................... 2 创建顶点缓冲区.................................................... 2 基本图元的绘制.................................................... 2 保存顶点......................................................... 2 设置渲染状态......................................................2 图形绘制......................................................... 2 索引缓冲.......................................... 4 顶点设置.......................................... 2 创建索引缓冲区...................................... 2 保存顶点索引值...................................... 2 索引图形绘制........................................2 D3D中的图形学...................................... 4 D3D中的向量........................................2 D3D中的矩阵........................................2 D3D中的平面........................................2 3 D3D中的射线........................................ 2 D3D中的图形变换...................................... 2 3.纹理 ......................................... 4 从磁盘文件获取纹理.................................................2 设置当前要渲染的纹理............................................... 2 设置纹理的渲染状态.................................... 2 设置纹理采样属性..................................... 2 从一张纹理图形中生成多级纹理.............................. 2 包装纹理寻址......................................................2 镜像纹理寻址......................................................2 夹取纹理寻址......................................................2 边框颜色纹理寻址.................................................. 2 一次镜像纹理寻址.................................................. 2 纹理包装......................................................... 2 4.光照 ..........................................4 D3D光照的基本实现....................................4 顶点格式.......................................... 2 设置物体材质........................................2 添加光源.......................................... 2 激活光照运算........................................2 5.摄像机 ........................................4 生成视图变换矩阵.................................................. 2 生成投影变换矩阵.................................................. 2 6.模型基础 ...................................... 4 ID3DXMesh接口基础................................................2 ID3DXMesh接口相关................................................2 应用.X文件.......................................................2 7.游戏中的基本特效 ............................... 4 4 检查硬件支持的深度缓冲区格式..............................2 激活深度测试........................................2 设置深度缓冲区更新.................................... 2 设置深度测试函数..................................... 2 激活 Alpha混合......................................2 设置 Alpha混合计算方式.................................2 设置 Alpha混合系数................................... 2 激活 Alpha测试......................................2 设置 Alpha测试参考值.................................. 2 设置 Alpha测试函数................................... 2 多边形填充模式...................................... 2 查询设备是否支持多重采样................................ 2 启用多重采样的全景图形反锯齿..............................2 设置多纹理混合方式.................................... 2 激活雾化.......................................... 2 设置雾化计算方式..................................... 2 设置雾的颜色........................................2 设置雾的起始范围..................................... 2 指数雾化浓度........................................2 基于发散的雾化...................................... 2 创建 2D字体........................................ 2 绘制字体.......................................... 2 5 创建 3D文字网格...................................... 2 8.8.8. 8. 游戏控制 ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 444 4 ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . DirectInput实现键盘控制 ................................................................ 2 ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . DirectInput实现鼠标控制 ................................................................ 2 ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . ... . 鼠标键选 ................................................................ 2 9.游戏音乐音效.................................... 4 6 D3DD3DD3D D3D 基本框架 创建 D3DD3DD3D D3D 对象: Direct3DCreate9(D3D_SDK_VERSION) ================================================================= ============== DirectX ================================================================= ============== 获取显卡显示模式: HRESULT GetAdapterDisplayMode( UINT Adapter, //指定显示卡序列号 D3DDISPLAYMODE *pMode //存储显示模式的指针 ); ================================================================= ============== DirectX ================================================================= ============== 创建 D3DD3DD3D D3D 设备接口: HRESULT CreateDevice( UINT Adapter, //显卡序列号 D3DDEVTYPE DeviceType, //D3D设备类型 HWND hFocusWindow, //所属窗口句柄 DWORD BehaviorFlags, //设备进行 3D运算 方式 D3DPRESENT_PARAMETERS *pPresentationParameters, //用于存储 D3D设 备相关信息的指针 IDirect3DDevice9 ** ppReturnedDeviceInterface //返回 D3D设备接口指针的地址 ); 第二个参数 DeviceType取值: D3DDEVTYPE_HAL //硬件抽象层,通过显示硬件来完成图形渲染工作 D3DDEVTYPE_REF //参考光栅器,一般用于测试显卡不支持的 D3D功能 D3DDEVTYPE_SW //用于支持第三方软件 第四个参数 BehaviorFlags取值: D3DCREATE_SOFTWARE_VERTEXPROCESSING //由 D3D软件进行顶点运算(常用) D3DCREATE_FPU_PRESERVE //激活双精度浮点运算或浮点运算异常 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 ,设置该项会降低系统性能 D3DCREATE_MULTITHREADED //保证 D3D是多线程安全的,设置该项 会降低系统性能 zstlv 附注 zstlv 7 D3DCREATE_MIXED_VERTEXPROCESSING //由混合方式进行顶点运算 D3DCREATE_HARDWARE_VERTEXPROCESSING //由 D3D硬件进行顶点运算 D3DCREATE_PUREDEVICE //禁用 D3D的 Get*()函数,禁止 D3D 使用虚拟设备模拟顶点运算 ================================================================= ============== DirectX ================================================================= ============== 开始渲染和结束渲染: BeginScene(); //开始渲染 …… 实际的渲染工作 …… EndScene(); //结束渲染 注意: 这两个函数必须成对出现,不允许交错和嵌套的发生,实际的渲染工作在这两个函数的 中间进行。 ================================================================= ============== DirectX ================================================================= ============== 清空图形绘制区: HRESULT Clear( DWORD Count, //清除的矩形区域数量 const D3DRECT *pRects, //清除的矩形区域数组指针 DWORD Flags, //清除的缓冲区 标志 禁止坐卧标志下载饮用水保护区标志下载桥隧标志图下载上坡路安全标志下载地理标志专用标志下载 ,指定清除哪一个缓 冲区 D3DCOLOR Color, //清除后重置的颜色 float Z, //清除后重置的深度值,从 0-1.0 DWORD Stencil //重置的模板值 ); 第三个参数 Flags取值(可任意组合): D3DCLEAR_STENCIL //模板缓冲区 D3DCLEAR_TARGET //颜色缓冲区 D3DCLEAR_ZBUFFER //深度缓冲区 ================================================================= ============== DirectX ================================================================= ============== 屏幕反转: 8 HRESULT Present( CONST RECT *pSourceRect, //复制源的矩形区域指针 CONST RECT *pDestRect, //复制目的地的矩形区域指针 HWND hDestWindowOverride, //D3D设备窗口句柄 CONST RGNDATA *pDirtyRegion //最小更新区域指针 ); 注意: 除非 D3D的交换链是用 D3DSWAPEFFECT_COPY的标志创建,在大多数的情况下,此 函数的各个参数都设置为 NULL。 ================================================================= ============== DirectX ================================================================= ============== 绘制基本图形 灵活定点格式(FVFFVFFVF FVF ) D3D定义的 FVF格式: D3DFVF_XYZ //包含未经变换的顶点坐标 D3DFVF_XYZRHW //包含经过变换的顶点坐标 D3DFVF_XYZW //包含经过变换和裁剪的顶点坐标 D3DFVF_NORMAL //包含法线信息 D3DFVF_PSIZE //点精灵的大小 D3DFVF_DIFFUSE //包含漫反射的颜色信息 D3DFVF_SPECULAR //包含镜面反射的颜色信息 D3DFVF_TEX0……D3DFVF_TEX8 //包含 0-8个纹理坐标信息 D3DFVF_XYZB1……D3DFVF_XYZB5 //包含顶点位置信息和影响顶点变换的权重信 息,用于骨骼动画模型中 根据 D3D提供的灵活顶点格式,就可以定义自己的顶点结构体,例如,定义一个包含 经过变换的坐标信息和漫反射颜色信息的顶点结构如下: //创建顶点对象 LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; //顶点缓冲区对象 //自定义顶点格式 struct CUSTOMVERTEX { FLOAT x,y,z,rhw; //经过变换的三维坐标 DWORD color; //顶点漫反射颜色 }; #define D3DFVF_CUSTOMVERTEX(D3DFVF_XYZRHW| D3DFVF_DIFFUSE) //以下函数设置顶点数据 CUSTOMVERTEX vertices[] = { 9 { 100.0f, 400.0f, 0.5f, 1.0f, 0xffff0000, }, { 300.0f, 50.0f, 0.5f, 1.0f, 0xff00ff00, }, { 500.0f, 400.0f, 0.5f, 1.0f, 0xff0000ff, }, }; ================================================================= ============== DirectX ================================================================= ============== 基本图元的绘制 HRESULT ( D3DPRIMITIVETYPE PrimitiveType, //基本图元类型 UINT StartVertex, //起始顶点 UINT PrimitiveCount //绘制图元的数量 ); 第一个参数 PrimitiveType取值: D3DPT_POINTLIST //点列集合(一组点的集合) D3DPT_LINELIST //线列集合(一组线段的集合) D3DPT_LINESTRIP //线带集合(首尾相连的线段的集合) D3DPT_TRIANGLELIST //三角形列(一组三角形的集合) D3DPT_TRIANGLESTRIP //三角形带 (首尾相连的三角形,有两个顶点重 合) D3DPT_TRIANGLEFAN //三角形扇(组成扇形的一组三角形) ================================================================= ============== DirectX ================================================================= ============== 创建顶点缓冲区 HRESULT CreateVertexBuffer( UINT Length, //顶点缓冲区的大小,按字节数算 DWORD Usage, //顶点缓冲区属性 DWORD FVF, //灵活顶点格式 D3DPOOL Pool, //顶点缓冲区的内存类型 IDirect3DVertexBuffer9** ppVertexBuffer, //顶点缓冲区指针地址 HANDLE* pSharedHandle //保留参数,置为 0 ); *Usage:参数 Usage 用于指定顶点缓冲区的属性,其取值可以设为0,或下面任意值的组合。 D3DUSAGE_WRITEONLY //只写属性,不能进行读操作,设置该属性可以提高系统性能 D3DUSAGE_DYNAMIC //指定顶点缓冲区 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 使用动态内存 D3DUSAGE_NPATCHES //使用顶点缓冲区绘制 N-patches曲线 D3DUSAGE_POINTS //指定顶点缓冲区存储原始点 D3DUSAGE_RTPATCHES //使用顶点缓冲区绘制高阶图元(high-orderprimitive) 10 D3DUSAGE_SOFTWAREPROCESSING //使用软件进行顶点运算,否则使用硬件计算 *Pool:参数 Pool 属于枚举类型 D3DPOOL,指定顶点缓冲区资源的内存位置,如下: typedef enum _D3DPOOL { D3DPOOL_DEFAULTD3DPOOL_DEFAULTD3DPOOL_DEFAULT D3DPOOL_DEFAULT === = 0,0,0, 0, ////// // 默认值,顶点缓冲区尽可能存在于显存中 D3DPOOL_MANAGEDD3DPOOL_MANAGEDD3DPOOL_MANAGED D3DPOOL_MANAGED === = 1,1,1, 1, ////// // 由 D3DD3DD3D D3D 的资源管理器自动调度顶点缓冲 区内存位置 D3DPOOL_SYSTEMMEM = 2, //顶点缓冲区位于内存中 D3DPOOL_SCRATCH = 3, //定点缓冲区位于计算机临时内存中,只能进行内存加锁拷贝 D3DPOOL_FORCE_DWORD = 0x7fffffff //强制将此 ENUM编译为 32位,无其他意 义 } D3DPOOL; 下面的函数创建了一个顶点缓冲区来保存一个三角形的顶点信息: //创建顶点缓冲 if(FAILED(g_pDevice->CreateVertexBuffer( UINT Length:3*sizeof(CUSTOMVERTEX), DWORD Usage:D3DUSAGE_WRITEONLY, DWORD FVF :D3DFVF_CUSTOMVERTEX, D3DPOOL Pool:D3DPOOL_DEFAULT, ppVertexBuffer:& g_pVB, pSharedHandle: NULL))) { return E_FAIL; } ================================================================= ============== DirectX ================================================================= ============== 保存顶点 HRESULT Lock( UINT OffsetToLock, //加锁内存起始地址 UINT SizeToLock, //加锁内存大小 VOID **ppbData, //返回内存指针地址 DWORD Flags //加锁属性 ); DWORDDWORDDWORD DWORD Flags Flags Flags Flags :指定了顶点缓冲区的加锁属性,它可以取值为 0,或者如下中的任意组合: D3DLOCK_DISCARD //仅在动态缓冲区下使用,硬件丢弃原缓冲区并创建一个 新的缓冲区 D3DLOCK_NO_DIRTY_UPDATE //在缺省状态下,对缓冲区加锁将会在该区域设置一个 Dirty标志,该属性将不对该区域设置 Dirty标志 D3DLOCK_NOSYSLOCK //在加锁的过程中系统可进行其他操作 D3DLOCK_READONL //设置缓冲区位 制度 关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载 属性 D3DLOCK_NOOVERWRITE //尽在动态缓冲区下使用,保证不覆盖缓冲区数据,即向 11 缓冲区中添加数据,允许在渲染时添加数据到缓冲区 //以下代码保存了顶点 //锁定顶点缓冲 if(FAILED(g_pVertexBuffer->Lock(0,sizeof(Vertices)))) { return E_FAIL; } //拷贝顶点信息 memcpy(g_pVB, vertices,size(vertices)); //解锁 g_pVertexBuffer->Unlock(); ================================================================= ============== DirectX ================================================================= ============== 设置渲染状态 HRESULT SetRenderState( D3DRENDERSTATETYPE State, //需要渲染的状态 DWORD Value //代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 设置的渲染状态的值 ); ================================================================= ============== DirectX ================================================================= ============== 图形绘制 *设置资源流 HRESULT SetStreamSource( UINT StreamNumber, //渲染数据流序号 IDirect3DVertexBuffer9 *pStreamData, //进行绑定的顶点缓冲区指针 UINT OffsetInBytes, //进行绑定连接的渲染数据流 的起始位置 UINT Stride //渲染数据流中一个顶点所占的内存的大小 ); *设置顶点格式 HRESULT SetFVF( DWORD FVF //灵活顶点格式 ); *绘制基本图元 HRESULT DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType, //绘制的图元类型 12 UINT StartVertex, //绘制的起始顶点 UINT PrimitiveCount //绘制的图元数量 ); // Desc: 渲染图形 VOID Render() { //清空后台缓冲区 g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0 ); //开始在后台缓冲区绘制图形 if( SUCCEEDED( g_pd3dDevice->BeginScene() ) ) { g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) ); g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 ); //画 一个三角形 g_pd3dDevice->EndScene();//结束在后台缓冲区绘制图形 } g_pd3dDevice->Present( NULL, NULL, NULL, NULL ); //将在后台缓冲区绘 制的图形提交到前台缓冲区显示 } ================================================================= ============== DirectX ================================================================= ============== 索引缓冲 顶点设置 //下面代码片段设置了索引缓冲的值 //----------------------------------------------------------------------------- // Desc: 全局变量 //----------------------------------------------------------------------------- LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; // 顶点缓冲区对象 LPDIRECT3DINDEXBUFFER9 g_pIB = NULL; // 索引缓冲区对象 //----------------------------------------------------------------------------- // Desc: 顶点结构和灵活顶点格式 //----------------------------------------------------------------------------- struct CUSTOMVERTEX { FLOAT x, y, z, rhw; // 经过坐标转换的顶点位置 DWORD color; // 顶点漫反射颜色值 }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE) 13 //----------------------------------------------------------------------------- // Desc: 创建顶点缓冲区和索引缓冲区 //----------------------------------------------------------------------------- HRESULT InitVBAndIB() { //顶点数据 CUSTOMVERTEX g_Vertices[9]; g_Vertices[0].x = 300; g_Vertices[0].y = 250; g_Vertices[0].z = 0.5f; g_Vertices[0].rhw = 1.0f; g_Vertices[0].color = 0xffff0000; for(int i=0; i<8; i++) { g_Vertices[i+1].x = (float)(200*sin(i*3.14159/4.0)) + 300; g_Vertices[i+1].y = -(float)(200*cos(i*3.14159/4.0)) + 250; g_Vertices[i+1].z = 0.5f; g_Vertices[i+1].rhw = 1.0f; g_Vertices[i+1].color = 0xff00ff00; } //顶点索引数组 WORD g_Indices[] ={ 0,1,2, 0,2,3, 0,3,4, 0,4,5, 0,5,6, 0,6,7, 0,7,8, 0,8,1 }; ================================================================= ============== DirectX ================================================================= ============== 创建索引缓冲 HRESULT CreateIndexBuffer( UINT Length, //索引缓冲区大小,按字节数计算 DWORD Usage, //索引缓冲区属性,和顶点缓冲区相同 D3DFORMAT Format, //索引数组的元素格式,可以使 16位或者 32位 D3DPOOL Pool, //索引缓冲区内存位置 IDirect3DIndexBuffer9** ppIndexBuffer, //索引缓冲区指针地址 HANDLE* pSharedHandle //保留参数,设为 0 ); *** * Format:表示索引数组中的元素格式,他可以是 16位整数或者 32位的整数 //创建顶点缓冲区 if( FAILED( g_pd3dDevice->CreateVertexBuffer( 9*sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB,NULL ) ) ) { 14 return E_FAIL; } //创建索引缓冲区 if( FAILED( g_pd3dDevice->CreateIndexBuffer( 24*sizeof(WORD), 0, D3DFMT_INDEX16, //索引类型 D3DPOOL_DEFAULT, &g_pIB,NULL ) ) ) { return E_FAIL; } ================================================================= ============== DirectX ================================================================= ============== 保存顶点索引值 //填充顶点缓冲区 VOID* pVertices; if( FAILED( g_pVB->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 ) ) ) return E_FAIL; memcpy( pVertices, g_Vertices, sizeof(g_Vertices) ); g_pVB->Unlock(); //填充索引缓冲区 VOID* pIndices; if( FAILED( g_pIB->Lock( 0, sizeof(g_Indices), (void**)&pIndices, 0 ) ) ) return E_FAIL; memcpy( pIndices, g_Indices, sizeof(g_Indices) ); g_pIB->Unlock(); ================================================================= ============== DirectX ================================================================= ============== 图形绘制 HRESULT SetIndices( IDirect3DIndexBuffer9 *pIndexData //使用的索引缓冲区指针 ); HRESULT DrawIndexedPrimitive( D3DPRIMITIVETYPE Type, //基本图元类型 INT BaseVertexIndex, //顶点缓冲区的起始位置 UINT MinIndex, //相对于 BaseVertexIndex的最小索引 UINT NumVertices, //绘制的顶点数目,第一个顶点的位置 UINT StartIndex, //索引缓冲区的起始位置 15 UINT PrimitiveCount //绘制的基本图元数量 ); //----------------------------------------------------------------------------- // Desc: 渲染图形 //----------------------------------------------------------------------------- VOID Render() { //清空后台缓冲区 g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 ); //开始在后台缓冲区绘制图形 if( SUCCEEDED( g_pd3dDevice->BeginScene())) { //在后台缓冲区绘制图形 g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) ); g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); g_pd3dDevice->SetIndices( g_pIB ); //设置索引缓冲区 g_pd3dDevice->DrawIndexedPrimitive ( D3DPT_TRIANGLELIST, 0,0,9,0,8 ); //结束在后台缓冲区渲染图形 g_pd3dDevice->EndScene(); } //将在后台缓冲区绘制的图形提交到前台缓冲区显示 g_pd3dDevice->Present( NULL, NULL, NULL, NULL ); } ================================================================= ============== DirectX ================================================================= ============== D3DD3DD3D D3D 中的图形学 D3DD3DD3D D3D 中的向量 D3DXVECTOR3D3DXVECTOR3D3DXVECTOR3 D3DXVECTOR3 表示三维向量; *** * 向量相等 1.通过“==”来判断向量是否相等,具体如下: D3DXVECTOR3 U(1.0F,0.0F,1.0F); D3DXVECTOR3 v(0.0F,1.0F,0.0F); If(u==v)return true; If(u!=v)return false; 2.判断浮点时应该定义一个“EPSILON”变量,如果两个浮点之间的差距小于 EPSILON就认为两个浮点数相等,具体如下: const float EPSILON = 0.001f; 16 bool Equals(float 1hs,float rhs) { Return fabs(1hs - rhs)
本文档为【DirectX函数大全】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_836982
暂无简介~
格式:pdf
大小:445KB
软件:PDF阅读器
页数:47
分类:互联网
上传时间:2013-05-25
浏览量:32