首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

没法打开源文件 d3dx9tex.h

2012-07-30 
无法打开源文件 d3dx9tex.h刚开始研究beginning directx9第一个引用d3dx9tex.h的代码就报这个错误。我已经

无法打开源文件 d3dx9tex.h
刚开始研究beginning directx9
第一个引用d3dx9tex.h的代码就报这个错误。

我已经在项目-》属性-》配置属性-》连接器-》常规-》附加库目录里面添加了“C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include”文件夹。而且我看到这个文件夹下面有“d3dx9tex.h”这个文件。
可是在vs2010“解决方案资源管理器”中的“外部依赖项”就是没有“d3dx9tex.h”。

debug就报错。

网上找了好久也没找到为什么。有哪位清楚的帮帮忙好么?

源码如下

C/C++ code
#include <windows.h>#include <d3d9.h>#include <d3dx9tex.h>#include <string>HINSTANCE hInst;HWND wndHandle;bool initWindow(HINSTANCE hInstance);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);// DirectX functions and global variablesHRESULT                 lastResult;LPDIRECT3D9             pD3D;LPDIRECT3DDEVICE9       pd3dDevice;IDirect3DSurface9*        bkgrd;bool initDirect3D(HWND hwnd);IDirect3DSurface9* getSurfaceFromBitmap(std::string filename);void Render(void);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){    if (!initWindow(hInstance))        return false;        if (!initDirect3D(wndHandle))        return false;    bkgrd = getSurfaceFromBitmap("./background.bmp");    if (bkgrd == NULL)    {        MessageBox(NULL, "Make sure the file background.bmp is in the current directory", "ERROR", MB_OK);        return 0;    }    // Main message loop:    // Enter the message loop    MSG msg;     ZeroMemory( &msg, sizeof(msg) );    while( msg.message!=WM_QUIT )    {        if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )        {            TranslateMessage( &msg );            DispatchMessage( &msg );        }        else        {            // call our render function            Render();        }    }    if( pd3dDevice != NULL)     {        pd3dDevice->Release();        pd3dDevice = NULL;    }    if( pD3D != NULL)    {        pD3D->Release();        pD3D = NULL;    }    return (int) msg.wParam;}bool initWindow(HINSTANCE hInstance){    WNDCLASSEX wcex;    wcex.cbSize = sizeof(WNDCLASSEX);    wcex.style            = CS_HREDRAW | CS_VREDRAW;    wcex.lpfnWndProc    = (WNDPROC)WndProc;    wcex.cbClsExtra        = 0;    wcex.cbWndExtra        = 0;    wcex.hInstance        = hInstance;    wcex.hIcon            = 0;    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);    wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);    wcex.lpszMenuName    = NULL;    wcex.lpszClassName    = "DirectXExample";    wcex.hIconSm        = 0;    RegisterClassEx(&wcex);    wndHandle = CreateWindow("DirectXExample",                              "DirectXExample",                              WS_OVERLAPPEDWINDOW,                             CW_USEDEFAULT,                              CW_USEDEFAULT,                              640,                              480,                              NULL,                              NULL,                              hInstance,                              NULL);   if (!wndHandle)      return false;      ShowWindow(wndHandle, SW_SHOW);   UpdateWindow(wndHandle);   return true;}LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){    switch (message)     {        case WM_DESTROY:            PostQuitMessage(0);            break;    }    return DefWindowProc(hWnd, message, wParam, lParam);}bool initDirect3D(HWND hwnd){    if( NULL == ( pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )    {        lastResult = E_FAIL;        return false;    }    D3DPRESENT_PARAMETERS d3dpp;     ZeroMemory( &d3dpp, sizeof(d3dpp) );    d3dpp.Windowed = TRUE;    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;    d3dpp.BackBufferCount  = 1;    d3dpp.BackBufferHeight = 480;    d3dpp.BackBufferWidth  = 640;    d3dpp.hDeviceWindow    = hwnd;    if( FAILED( pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,                                      D3DCREATE_SOFTWARE_VERTEXPROCESSING,                                      &d3dpp, &pd3dDevice ) ) )    {        lastResult = E_FAIL;        return false;    }    return true;}IDirect3DSurface9* getSurfaceFromBitmap(std::string filename){    HRESULT hResult;    IDirect3DSurface9* surface = NULL;    D3DXIMAGE_INFO imageInfo;    // Get the width and height info from this bitmap    hResult = D3DXGetImageInfoFromFile(filename.c_str(), &imageInfo);    if FAILED (hResult)        return NULL;    hResult = pd3dDevice->CreateOffscreenPlainSurface(imageInfo.Width, imageInfo.Height, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &surface, NULL);    if (FAILED(hResult))        return NULL;    hResult = D3DXLoadSurfaceFromFile(surface, NULL, NULL, filename.c_str(), NULL, D3DX_DEFAULT, 0, NULL);    if (FAILED(hResult))        return NULL;    return surface;}void Render(void){    if( NULL == pd3dDevice )        return;    // Clear the backbuffer to a blue color    pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );        IDirect3DSurface9* backbuffer;    pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO, &backbuffer);    HRESULT hResult = pd3dDevice->StretchRect(bkgrd, NULL, backbuffer, NULL, D3DTEXF_NONE);    if (hResult != D3D_OK)        MessageBox(NULL,"failed", "error", MB_OK);    // Present the backbuffer contents to the display    pd3dDevice->Present( NULL, NULL, NULL, NULL );} 



[解决办法]
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include
把这个目录在配置中从最下面移到最上面试试看

热点排行