Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > d3dx9.h не находит


Автор: America 24.1.2007, 08:50
Привет народ! Я пытаюсь скомпилить мою прогу с подключённым d3dx9.h У меня почему то не находит его наверно нет, где взять этот файл и куда положить чтобы его те кому нужно обнаружили  smile   

Автор: America 24.1.2007, 11:32
аа... я тут почитал... нужна оказывается SDK... но она стока весит! У меня сейчас нет возможности стока качать(макс50mb)  Есть какие то айдии? Что мне делать? Может есть какой-то выходы?? 

Автор: FelikZ 24.1.2007, 19:56
http://forum.vingrad.ru/topic-132768.html

Автор: America 24.1.2007, 23:24
Сейчас попробую 222 версию.. посмотрим что из этого выйдет.

Автор: America 25.1.2007, 00:07
Я пользуюсь дев-си++ и скачал в папку инклуд та что наэходится деве все библиотеки.h из директХ
Я попробывал скомпилировать прогу... 
Он мне выдал несколько ошибок:
http://slil.ru/23812322



Код


#define STRICT
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <mmsystem.h>

//-----------------------------------------------------------------------------

HWND              g_hWnd       = NULL;
LPDIRECT3D9       g_pD3D       = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
LPDIRECT3DVERTEXBUFFER9 pBufferVershin=NULL;
//-----------------------------------------------------------------------------

struct CUSTOMVERTEX
{
       float X,Y,Z;
       DWORD color; 
             
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE) // vershin format
//-----------------------------------------------------------------------------

HRESULT InitialBufferVershin()
{
        CUSTOMVERTEX Vershin[]=
        {
        
        { 1.0f,-1.0f,0.0f,0x00000ffff},  //A
        {-1.0f,-1.0f,0.0f,0x00000ffff},  //B
        {-1.0f, 1.0f,0.0f,0x00000ffff},  //C
        
        {-1.0f, 1.0f,0.0f,0x00000ffff},  //C
        { 1.0f, 1.0f,0.0f,0x00000ffff},  //D
        { 1.0f,-1.0f,0.0f,0x00000ffff},  //A
        
        };
        
        if(FAILED(g_pd3dDevice->CreateVertexBuffer(6*sizeof(CUSTOMVERTEX),0, 
                    D3DFVF_CUSTOMVERTEX,D3DPOOL_DEFAULT,&pBufferVershin,NULL)))
           return E_FAIL;
           
        // blocking:
                    
        VOID* pBV;
        if(FAILED(pBufferVershin->Lock(0,sizeof(Vershin),(void**)&pBV,0)))
           return E_FAIL;
        
        memcpy(pBV,Vershin,sizeof(Vershin)); // copy
        
        pBufferVershin-> Unlock();
        
        return S_OK;
}                   
//-----------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow);
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
void init(void);
void shutDown(void);
void render(void);


//-----------------------------------------------------------------------------
int WINAPI WinMain( HINSTANCE hInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR     lpCmdLine,
                    int       nCmdShow )
{
    WNDCLASSEX winClass;
    MSG        uMsg;

    memset(&uMsg,0,sizeof(uMsg));

    winClass.lpszClassName = "MY_WINDOWS_CLASS";
    winClass.cbSize        = sizeof(WNDCLASSEX);
    winClass.style         = CS_HREDRAW | CS_VREDRAW;
    winClass.lpfnWndProc   = WindowProc;
    winClass.hInstance     = hInstance;

    
    winClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
    winClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    winClass.lpszMenuName  = NULL;
    winClass.cbClsExtra    = 0;
    winClass.cbWndExtra    = 0;

    if( !RegisterClassEx(&winClass) )
        return E_FAIL;

    g_hWnd = CreateWindowEx( NULL, "MY_WINDOWS_CLASS", 
                             "Direct3D (DX9) - Initialization",
                             WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                             0, 0, 640, 480, NULL, NULL, hInstance, NULL );

    if( g_hWnd == NULL )
        return E_FAIL;

    ShowWindow( g_hWnd, nCmdShow );
    UpdateWindow( g_hWnd );

    init();

    while( uMsg.message != WM_QUIT )
    {
        if( PeekMessage( &uMsg, NULL, 0, 0, PM_REMOVE ) )
        { 
            TranslateMessage( &uMsg );
            DispatchMessage( &uMsg );
        }
        else
            render();
    }

    shutDown();

    UnregisterClass( "MY_WINDOWS_CLASS", winClass.hInstance );

    return uMsg.wParam;
}


//-----------------------------------------------------------------------------
LRESULT CALLBACK WindowProc( HWND   hWnd, 
                             UINT   msg, 
                             WPARAM wParam, 
                             LPARAM lParam )
{
    switch( msg )
    {
        case WM_KEYDOWN:
        {
            switch( wParam )
            {
                case VK_ESCAPE:
                    PostQuitMessage(0);
                    break;
            }
        }
        break;

        case WM_CLOSE:
        {
            PostQuitMessage(0);
        }
        
        case WM_DESTROY:
        {
            PostQuitMessage(0);
        }
        break;

        default:
        {
            return DefWindowProc( hWnd, msg, wParam, lParam );
        }
        break;
    }

    return 0;
}


//-----------------------------------------------------------------------------
void init( void )
{
    g_pD3D = Direct3DCreate9( D3D_SDK_VERSION );

    if( g_pD3D == NULL )
    {
    
        return;
    }

    D3DDISPLAYMODE d3ddm;

    if( FAILED( g_pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm ) ) )
    {
    
        return;
    }

    HRESULT hr;

    if( FAILED( hr = g_pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, 
                                                d3ddm.Format, D3DUSAGE_DEPTHSTENCIL,
                                                D3DRTYPE_SURFACE, D3DFMT_D16 ) ) )
    {
        if( hr == D3DERR_NOTAVAILABLE )
        
            return;
    }



    D3DCAPS9 d3dCaps;

    if( FAILED( g_pD3D->GetDeviceCaps( D3DADAPTER_DEFAULT, 
                                       D3DDEVTYPE_HAL, &d3dCaps ) ) )
    {
    
        return;
    }

    DWORD dwBehaviorFlags = 0;

    if( d3dCaps.VertexProcessingCaps != 0 )
        dwBehaviorFlags |= D3DCREATE_HARDWARE_VERTEXPROCESSING;
    else
        dwBehaviorFlags |= D3DCREATE_SOFTWARE_VERTEXPROCESSING;


    D3DPRESENT_PARAMETERS d3dpp;
    memset(&d3dpp, 0, sizeof(d3dpp));

    d3dpp.BackBufferFormat       = d3ddm.Format;
    d3dpp.SwapEffect             = D3DSWAPEFFECT_DISCARD;
    d3dpp.Windowed               = TRUE;
    d3dpp.EnableAutoDepthStencil = TRUE;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
    d3dpp.PresentationInterval   = D3DPRESENT_INTERVAL_IMMEDIATE;

    if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd,
                                      dwBehaviorFlags, &d3dpp, &g_pd3dDevice ) ) )
    {

        return;
    }
}


//-----------------------------------------------------------------------------
void shutDown( void )
{
    if( g_pd3dDevice != NULL )
        g_pd3dDevice->Release();

    if( g_pD3D != NULL )
        g_pD3D->Release();
}


                    
        
//-----------------------------------------------------------------------------
void render( void )
{
    g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                         D3DCOLOR_COLORVALUE(0.0f,1.0f,0.0f,1.0f), 1.0f, 0 );

    g_pd3dDevice->BeginScene();

    // geometry:
    
      
      
      g_pd3dDevice->SetStreamSource(0,pBufferVershin,0,sizeof(CUSTOMVERTEX)); //+     
      
      g_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX); //+
      
      g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);
      
    //end of geometry

    g_pd3dDevice->EndScene();

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






Автор: AssassinFX 25.1.2007, 18:36
America, Дирекс под дев-с++ неидёт.Зря качал!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)