buffer = 0x001b8478 "试图给目录添加一个名称已在使用中的对象。 这是什么意思解决思路

buffer = 0x001b8478 "试图给目录添加一个名称已在使用中的对象。 这是什么意思
我在使用 d3d加载一个 .x文件时,跑到函数D3DXLoadMeshFromX()里出错,我打印的log显示是如标题的错误,谁知道怎么回事啊 (红色是出错的地方)

代码如下:
C/C++ code

#include<Windows.h>
#include<d3d9.h>
#include<d3dx9.h>
//#pragma comment(lib,"dxerr.lib")
//#pragma comment(lib,"dxguid.lib")
//#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"winmm.lib")

wchar_t*g_pClassName=L"Transform";
wchar_t*g_pWindowName=L"我的窗口";

LPDIRECT3DDEVICE9 g_pd3dDevice=NULL;
D3DMATERIAL9* g_pMaterials;
LPDIRECT3DTEXTURE9* g_pTextures;
LPD3DXMESH g_pMeshTiny=NULL;
DWORD g_dwNumMtrls=0;






struct CUSTOMVERTEX
{
    FLOAT _x,_y,_z;
    FLOAT _u,_v;
    CUSTOMVERTEX(FLOAT x,FLOAT y,FLOAT z,FLOAT u,FLOAT v)
        :_x(x),_y(y),_z(z),_u(u),_v(v){}
    
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_TEX1)


HRESULT InitDirect3D(HWND hWnd);
VOID Direct3DRender();
VOID Direct3DCleanup();

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nShowCmd)
{
    WNDCLASS wndclass;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);

    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hInstance=hInstance;
    wndclass.lpfnWndProc=WndProc;
    wndclass.lpszClassName=g_pClassName;
    wndclass.lpszMenuName=NULL;
    wndclass.style=CS_HREDRAW|CS_VREDRAW;

    if(!RegisterClass(&wndclass))
        return 0;

    HWND hWnd=CreateWindow(g_pClassName,g_pWindowName,WS_OVERLAPPEDWINDOW,100,100,640,480,NULL,
        NULL,wndclass.hInstance,NULL);

    InitDirect3D(hWnd);

    ShowWindow(hWnd,nShowCmd);
    UpdateWindow(hWnd);


    MSG msg;

    ZeroMemory(&msg,sizeof(msg));

    while(msg.message!=WM_QUIT)
    {
        if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
        {

            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
            Direct3DRender();

    }

    UnregisterClass(g_pClassName,wndclass.hInstance);
    return 0;
}



LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
    switch(message)
    {
    case WM_PAINT:
        Direct3DRender();
        ValidateRect(hWnd,NULL);
        break;
    case WM_DESTROY:
        Direct3DCleanup();
        PostQuitMessage(0);
        break;
    }

    return DefWindowProc(hWnd,message,wParam,lParam);
}

HRESULT InitDirect3D(HWND hWnd)
{
    LPDIRECT3D9 pD3D=NULL;
    pD3D=Direct3DCreate9(D3D_SDK_VERSION);
    if(pD3D==NULL) return E_FAIL;
    D3DCAPS9 caps;
    int vp=0;

    pD3D->GetDeviceCaps(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,&caps);
    if(caps.DevCaps&D3DDEVCAPS_HWTRANSFORMANDLIGHT)
        vp=D3DCREATE_HARDWARE_VERTEXPROCESSING;
    else
        vp=D3DCREATE_SOFTWARE_VERTEXPROCESSING;






    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp,sizeof(d3dpp));
    d3dpp.BackBufferWidth=640;
    d3dpp.BackBufferHeight=480;
    d3dpp.BackBufferFormat=D3DFMT_A8R8G8B8;
    d3dpp.BackBufferCount=1;
    d3dpp.MultiSampleType=D3DMULTISAMPLE_NONE;
    d3dpp.MultiSampleQuality=0;
    d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
    d3dpp.hDeviceWindow=hWnd;
    d3dpp.Windowed=true;
    d3dpp.EnableAutoDepthStencil=true;
    d3dpp.AutoDepthStencilFormat=D3DFMT_D24S8;
    d3dpp.Flags=0;
    d3dpp.FullScreen_RefreshRateInHz=D3DPRESENT_RATE_DEFAULT;
    d3dpp.PresentationInterval=D3DPRESENT_INTERVAL_IMMEDIATE;
    pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,vp,&d3dpp,&g_pd3dDevice);




    LPD3DXBUFFER pAdjBuffer=NULL;
    LPD3DXBUFFER pMtrlBuffer=NULL;
[color=#FF0000]    if(FAILED(D3DXLoadMeshFromX(L"D:\\DwarfWithEffectInstance.x",D3DXMESH_MANAGED,g_pd3dDevice,&pAdjBuffer,&pMtrlBuffer,NULL,&g_dwNumMtrls,&g_pMeshTiny)))
        MessageBox(NULL,L"failed",L"failed",0);
//    else
//        MessageBox(NULL,L"success",L"success",0);[/color]


    D3DXMATERIAL* pMtrls=(D3DXMATERIAL*)pMtrlBuffer->GetBufferPointer();
    g_pMaterials=new D3DMATERIAL9[g_dwNumMtrls];
    g_pTextures=new LPDIRECT3DTEXTURE9[g_dwNumMtrls];
    for(DWORD i=0;i<g_dwNumMtrls;i++)
    {
        g_pMaterials[i]=pMtrls[i].MatD3D;
        g_pMaterials[i].Ambient=g_pMaterials[i].Diffuse;
        g_pTextures[i]=NULL;
        D3DXCreateTextureFromFileA(g_pd3dDevice,pMtrls[i].pTextureFilename,&g_pTextures[i]);
    }
    pAdjBuffer->Release();
    pMtrlBuffer->Release();



    g_pd3dDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);    
    g_pd3dDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);    
    g_pd3dDevice->SetSamplerState(0,D3DSAMP_MIPFILTER,D3DTEXF_LINEAR);






    



    D3DXMATRIX matView;
    D3DXVECTOR3 vEye(0.0f,0.0f,-10.0f);
    D3DXVECTOR3 vAt(0.0f,0.0f,0.0f);
    D3DXVECTOR3 vUp(0.0f,1.0f,0.0f);
    D3DXMatrixLookAtLH(&matView,&vEye,&vAt,&vUp);
    g_pd3dDevice->SetTransform(D3DTS_VIEW,&matView);

    

    D3DXMATRIX matProj;
    D3DXMatrixPerspectiveFovLH(&matProj,D3DX_PI/4.0f,1.0f,1.0f,2000.0f);
    g_pd3dDevice->SetTransform(D3DTS_PROJECTION,&matProj);
        


    D3DLIGHT9 light;
    ::ZeroMemory(&light,sizeof(light));
    light.Type=D3DLIGHT_DIRECTIONAL;
    light.Ambient=D3DXCOLOR(0.3f,0.3f,0.3f,1.0f);
    light.Diffuse=D3DXCOLOR(1.0f,1.0f,1.0f,1.0f);
    light.Specular=D3DXCOLOR(0.0f,0.0f,0.0f,1.0f);
    light.Position=D3DXVECTOR3(1.0f,0.0f,1.0f);

    g_pd3dDevice->SetLight(0,&light);
    g_pd3dDevice->LightEnable(0,TRUE);
    g_pd3dDevice->SetRenderState(D3DRS_NORMALIZENORMALS,true);
    g_pd3dDevice->SetRenderState(D3DRS_SPECULARENABLE,true);


    



    pD3D->Release();
    return S_OK;
}


VOID Direct3DRender()
{
    g_pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(0,0,0),1.0f,0);
    g_pd3dDevice->BeginScene();



    D3DXMATRIX matWorld,Rx,Ry,Rz;
    D3DXMatrixIdentity(&matWorld);
//    D3DXMatrixRotationX(&Rx,-D3DX_PI/2.0f);
    D3DXMatrixRotationY(&Ry,D3DX_PI+::timeGetTime()/1000.0f);
    matWorld=Ry*matWorld;
    g_pd3dDevice->SetTransform(D3DTS_WORLD,&matWorld);


    if(::GetAsyncKeyState('F')&0x8000f)
        g_pd3dDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_WIREFRAME);
    if(::GetAsyncKeyState('S')&0x8000f)
        g_pd3dDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID);

    
    for(DWORD i=0;i<g_dwNumMtrls;i++)
    {
        g_pd3dDevice->SetMaterial(&g_pMaterials[i]);
        g_pd3dDevice->SetTexture(0,g_pTextures[i]);
        g_pMeshTiny->DrawSubset(i);
    }
    


    
    g_pd3dDevice->EndScene();
    g_pd3dDevice->Present(NULL,NULL,NULL,NULL);
}

VOID Direct3DCleanup()
{
    if(g_pd3dDevice!=NULL)
    {
        g_pd3dDevice->Release();
    }
    g_pd3dDevice=NULL;

}



------解决方案--------------------
D3DXLoadMeshFromX是不是参数有问题?
有没有跟踪调试一下?