大家好,欢迎来到IT知识分享网。
IDirectXFile,IDirectXFileData等接口被改为ID3DXFile,ID3DXFileData
因此 directx高级动画制作 中的例子就有很多地方需要改,比如最长遇见的错误【error C2664: “D3DXLoadMeshFromXof”: 不能将参数1 从“LPDIRECTXFILEDATA”转换为“LPD3DXFILEDATA”与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换】
更改前获取xfile
pDXFile->CreateEnumObject((LPVOID)xFileName,DXFILELOAD_FROMFILE,&pEnum);
更改后获取xfile
pDXFile->CreateEnumObject((LPVOID)xFileName,D3DXF_FILELOAD_FROMFILE,&pEnum);
***注意:更改后注册模板的代码一定要在获取xfile之前注册,不然会在getchildren时遇到异常
if(FAILED(pDXFile->RegisterTemplates(
(LPVOID)D3DRM_XTEMPLATES,
D3DRM_XTEMPLATE_BYTES))) {
pDXFile->Release();
return FALSE;
}
pDXFile->CreateEnumObject((LPVOID)xFileName,D3DXF_FILELOAD_FROMFILE,&pEnum);
**********************************************************************
更改前遍历数据
while(SUCCEEDED(hr = pEnum->GetNextDataObject(&pData)))
{
pData->Release();
}
更改后遍历数据
if(SUCCEEDED(hr = pEnum->GetChildren(&datanum))){
for(SIZE_T i = 0;i<datanum;i++){
if(SUCCEEDED(pEnum->GetChild(i,&pData))){
}
pData->Release();
}
}
更改后获取模板类型变为
GUID Type ;
pData->GetType(&Type)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30632.html