今天找了好多资料终于弄清了D3DXLoadMeshFromXResource的用法,在此本菜鸟将自己的心得分享一下:
这个函数是将资源中的.x文件读到内存中,
以下是官方的解释:
HRESULT WINAPI D3DXLoadMeshFromXResource(
HMODULE Module, LPCSTR Name, LPCSTR Type, DWORD Options, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, LPD3DXBUFFER *ppEffectInstances, DWORD *pNumMaterials, LPD3DXMESH *ppMesh );使用时要注意以下几点.D3DXLoadMeshFromXResource(NULL,MAKEINTRESOURCE(IDR_RCDATA1),RT_RCDATA,D3DXMESH_MANAGED,Device,&adjBuffer,&mtrlBuffer,0,&numMtrls,&Mesh);第二个参数:由于IDR_RCDATA1被define成一个整型,所以要用MAKEINTRESOURCE()转换以下,MAKEINTRESOURCE()是这么定义的:#define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))要注意的是第三个参数:由于.x文件不是标准的资源文件,把他导入到资源文件时,类型应该定义成RCDATA,该函数的第三个参数RT_RCDATA指明的就是读入的资源是RCDATA类型,RT_RCDATA是这么定义的:#define RT_RCDATA MAKEINTRESOURCE(10)其他的参数和D3DXLoadMeshFromX()函数差不多.