Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ошибка при компиляции

60K
12 октября 2010 года
evil0o
6 / / 11.08.2010
исходный код
Код:
#include <windows.h>        
#include <d3d9.h>
LPDIRECT3D9                 pDirect3D          = NULL;
LPDIRECT3DDEVICE9           pDirect3DDevice    = NULL;
LPDIRECT3DVERTEXBUFFER9     pBufferVershin     = NULL;
 struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw;
    DWORD color;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)


HRESULT InitialDirect3D( HWND hwnd )
{
    if( NULL == ( pDirect3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
        return E_FAIL;

    D3DDISPLAYMODE Display;
    if( FAILED( pDirect3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &Display ) ) )
        return E_FAIL;

    D3DPRESENT_PARAMETERS Direct3DParametr;
    ZeroMemory( &Direct3DParametr, sizeof(Direct3DParametr) );
    Direct3DParametr.Windowed         = TRUE;
    Direct3DParametr.SwapEffect       = D3DSWAPEFFECT_DISCARD;
    Direct3DParametr.BackBufferFormat = Display.Format;

    if( FAILED( pDirect3D -> CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
                                      D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                      &Direct3DParametr, &pDirect3DDevice ) ) )
    {
        return E_FAIL;
    }
    return S_OK;
}



HRESULT InitialBufferVershin(){

    CUSTOMVERTEX Vershin[] =
    {
        { 300.0f, 300.0f, 0.5f, 1.0f, 0x00000fff, },  // А
        { 150.0f, 300.0f, 0.5f, 1.0f, 0x00000fff, },  // В
        { 150.0f, 150.0f, 0.5f, 1.0f, 0x00000fff, },  // С
        //  x       y      z    rhw      цвет

        { 150.0f, 150.0f, 0.5f, 1.0f, 0x00000fff, },  // C
        { 300.0f, 150.0f, 0.5f, 1.0f, 0x00000fff, },  // D
        { 300.0f, 300.0f, 0.5f, 1.0f, 0x00000fff, },  // A
        //  x       y      z    rhw      цвет
    };

    if( FAILED( pDirect3DDevice->CreateVertexBuffer( 6*sizeof(CUSTOMVERTEX),
                                                  0, D3DFVF_CUSTOMVERTEX,
                                                  D3DPOOL_DEFAULT, &pBufferVershin, NULL ) ) )
    {
        return E_FAIL;
    }

    VOID* pBV;
    if( FAILED( pBufferVershin->Lock( 0, sizeof(Vershin), (void**)&pBV, 0 ) ) )
        return E_FAIL;

    memcpy( pBV, Vershin, sizeof(Vershin) );
    pBufferVershin->Unlock();              

    return S_OK;
}

VOID RenderingDirect3D()
{
   
    if(pDirect3DDevice == NULL)    
        return;
   
   
    pDirect3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,0), 1.0f, 0 );
   
    pDirect3DDevice->BeginScene();

    pDirect3DDevice->SetStreamSource( 0, pBufferVershin, 0, sizeof(CUSTOMVERTEX) );
    pDirect3DDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
    pDirect3DDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

    pDirect3DDevice->EndScene();      
   
    pDirect3DDevice->Present( NULL, NULL, NULL, NULL );

}

VOID DeleteDirect3D()
{

    if( pBufferVershin  != NULL)
        pBufferVershin->Release();

    if( pDirect3DDevice != NULL)
        pDirect3DDevice->Release();

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

LRESULT CALLBACK MainWinProc(HWND   hwnd,            
                            UINT    msg,              
                            WPARAM  wparam,          
                            LPARAM  lparam)          
{

switch(msg)
    {    
   
     case WM_DESTROY:
        {
        DeleteDirect3D();
        PostQuitMessage(0);
        return(0);
        }
    }

 
return DefWindowProc(hwnd, msg, wparam, lparam);

}



int WINAPI WinMain(    HINSTANCE hinstance,
                    HINSTANCE hprevinstance,
                    LPSTR lpcmdline,
                    int ncmdshow)
{

WNDCLASSEX windowsclass;  
HWND       hwnd;        
MSG        msg;          


windowsclass.cbSize           = sizeof(WNDCLASSEX);
windowsclass.style            = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
windowsclass.lpfnWndProc      = 0;
windowsclass.cbClsExtra       = 0;
windowsclass.cbWndExtra       = 0;
windowsclass.hInstance        = hinstance;
windowsclass.hIcon            = LoadIcon(NULL, IDI_APPLICATION);
windowsclass.hCursor          = LoadCursor(NULL, IDC_ARROW);
windowsclass.hbrBackground    = (HBRUSH)GetStockObject(GRAY_BRUSH);
windowsclass.lpszMenuName     = NULL;
windowsclass.lpszClassName    = 0;
windowsclass.hIconSm          = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&windowsclass))
    return(0);


hwnd = CreateWindowEx(NULL,              
                       0,
                       0,
                       WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                       0,0,
                       500,400,
                       NULL,
                       NULL,
                       hinstance,
                       NULL);

       InitialDirect3D(hwnd);
       InitialBufferVershin();
           ShowWindow( hwnd, SW_SHOWDEFAULT );
           UpdateWindow( hwnd );

              ZeroMemory( &msg, sizeof(msg));

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




}




ошибка:
------ Построение начато: проект: DD, Конфигурация: Debug Win32 ------
Построение начато 12.10.2010 23:43:30.
InitializeBuildStatus:
Обращение к "Debug\DD.unsuccessfulbuild".
ClCompile:
Для всех выходных данных обновления не требуется.
ManifestResourceCompile:
Для всех выходных данных обновления не требуется.
WindowsWSBazis.obj : error LNK2019: ссылка на неразрешенный внешний символ _Direct3DCreate9@4 в функции "long __cdecl InitialDirect3D(struct HWND__ *)" (?InitialDirect3D@@YAJPAUHWND__@@@Z)
c:\documents and settings\admin\мои документы\visual studio 2010\Projects\DD\Debug\DD.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

СБОЙ построения.

Затраченное время: 00:00:01.96
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

визуал студия 2010
заранее благодарен за помощь
2.1K
13 октября 2010 года
Norgat
452 / / 12.08.2009
код - оформи

прочитай - это: http://msdn.microsoft.com/ru-ru/library/cc656716.aspx

Цитата:
В поле Дополнительные зависимости добавьте файлы d3d9.lib и d3dx9.lib.



было выполнено?

60K
13 октября 2010 года
evil0o
6 / / 11.08.2010
поле Дополнительные зависимости где находится ? а то с сылка на 2008, а у меня стоит 2010 видимо меню чуточку различаются

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог