Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> урок из Горнакова, свмый первй и не получается 
:(
    Опции темы
koljan
Дата 7.12.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


VIP
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 18.12.2005
Где: г.Архангельск

Репутация: нет
Всего: 1



Код

//*******************************************************************************************

#include <windows.h>


LRESULT CALLBACK MainWinProc(HWND hwnd,UINT msg, WPARAM wparam, LPARAM lparam)
{
    switch(msg)
    {
    case WM_PAINT:
        break;
    case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        } break;
    }
    return (DefWindowProc(hwnd, msg, wparam, lparam));
}
//******************************************************
//Функция WinMain
//Входная точка приложения

int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)
{
    WNDCLASS windowsclass;  //создаём класс
    HWND hwnd;                  //создаём дескриптор окна
    MSG msg;                  //идентификатор сообщения
    
    
    //windowsclass.cbSize=sizeof(WNDCLASSEX);
    //windowsclass.style = CB_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
    windowsclass.lpfnWndProc=MainWinProc;
    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="WINDOWSCLASS";
//    windowsclass.hIconSM=LoadIcon(NULL, IDI_APPLICATION);
    //РЕГИСТРИРУЕМ КЛАСС
    if(!RegisterClass(&windowsclass))
        return 0;
    //можно создать окно
    if(!(hwnd=CreateWindowEx(NULL,"WINDOWSCLASS","Программа",  /*WS_OVERLAPPENDWINDOW|*/WS_VISIBLE,0,0,600,800,NULL,NULL,hinstance,NULL)))
        return 0;
    ShowWindow(hwnd,SW_SHOWDEFAULT);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

в таком виде программа работает, но это я сам уже переделывал, изначально была такая


Код

//*******************************************************************************************

#include <windows.h>


LRESULT CALLBACK MainWinProc(HWND hwnd,UINT msg, WPARAM wparam, LPARAM lparam)
{
    switch(msg)
    {
    case WM_PAINT:
        break;
    case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        } break;
    }
    return (DefWindowProc(hwnd, msg, wparam, lparam));
}
//******************************************************
//Функция WinMain
//Входная точка приложения

int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)
{
    WINDCLASSEX windowsclass;  //создаём класс
    HWND hwnd;                  //создаём дескриптор окна
    MSG msg;                  //идентификатор сообщения
    
    
    windowsclass.cbSize=sizeof(WNDCLASSEX);
    windowsclass.style = CB_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
    windowsclass.lpfnWndProc=MainWinProc;
    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="WINDOWSCLASS";
    windowsclass.hIconSM=LoadIcon(NULL, IDI_APPLICATION);
    //РЕГИСТРИРУЕМ КЛАСС
    if(!RegisterClass(&windowsclass))
        return 0;
    //можно создать окно
    if(!(hwnd=CreateWindowEx(NULL,"WINDOWSCLASS","Программа", WS_OVERLAPPENDWINDOW|WS_VISIBLE,0,0,600,800,NULL,NULL,hinstance,NULL)))
        return 0;
    ShowWindow(hwnd,SW_SHOWDEFAULT);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}



пишет что 
Цитата

c:\Documents\cpp\Dx\main.cpp(26): error C2065: 'WINDCLASSEX' : undeclared identifier
c:\Documents\cpp\Dx\main.cpp(26): error C2146: syntax error : missing ';' before identifier 'windowsclass'
c:\Documents\cpp\Dx\main.cpp(26): error C2065: 'windowsclass' : undeclared identifier
c:\Documents\cpp\Dx\main.cpp(31): error C2228: left of '.cbSize' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(31): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(32): error C2228: left of '.style' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(32): error C2065: 'CB_DBLCLKS' : undeclared identifier
c:\Documents\cpp\Dx\main.cpp(32): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(33): error C2228: left of '.lpfnWndProc' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(33): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(34): error C2228: left of '.cbClsExtra' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(34): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(35): error C2228: left of '.cbWndExtra' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(35): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(36): error C2228: left of '.hInstance' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(36): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(37): error C2228: left of '.hIcon' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(37): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(38): error C2228: left of '.hCursor' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(38): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(39): error C2228: left of '.hbrBackground' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(39): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(40): error C2228: left of '.lpszMenuName' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(40): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(41): error C2228: left of '.lpszClassName' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(41): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(42): error C2228: left of '.hIconSM' must have class/struct/union type
        type is ''unknown-type''
c:\Documents\cpp\Dx\main.cpp(42): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(44): error C3861: 'windowsclass': identifier not found, even with argument-dependent lookup
c:\Documents\cpp\Dx\main.cpp(47): error C2065: 'WS_OVERLAPPENDWINDOW' : undeclared identifier
c:\Documents\cpp\Dx\main.cpp(56): warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data



--------------------
PM MAIL ICQ   Вверх
OneFourth
Дата 10.12.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 17.1.2006

Репутация: нет
Всего: нет



Здесь так
Цитата
 WNDCLASS windowsclass; 

а здесь
Цитата

 WINDCLASSEX windowsclass; 


Попробуй WNDCLASSEX
PM   Вверх
koljan
Дата 10.12.2006, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


VIP
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 18.12.2005
Где: г.Архангельск

Репутация: нет
Всего: 1



Цитата(OneFourth @  10.12.2006,  20:51 Найти цитируемый пост)
Попробуй WNDCLASSEX

Нет не помогло



--------------------
PM MAIL ICQ   Вверх
EvgenZ
Дата 24.12.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



А я что-то не пойму, в первом пирмере SDK еще не нужен? У меня не компилится, ругается на 
Цитата

c:\documents and settings\blaze\мои документы\visual studio 2005\projects\nomer1win32\nomer1win32\nomer1win32.cpp(7) : fatal error C1083: Cannot open include file: 'resource.h': No such file or directory

если ее коменчу, то ругается 
Цитата

c:\documents and settings\blaze\мои документы\visual studio 2005\projects\nomer1win32\nomer1win32\nomer1win32.cpp(63) : error C2065: 'IDI_ICON1' : undeclared identifier
c:\documents and settings\blaze\мои документы\visual studio 2005\projects\nomer1win32\nomer1win32\nomer1win32.cpp(67) : error C2440: '=' : cannot convert from 'const char [13]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\blaze\мои документы\visual studio 2005\projects\nomer1win32\nomer1win32\nomer1win32.cpp(85) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\blaze\мои документы\visual studio 2005\projects\nomer1win32\nomer1win32\nomer1win32.cpp(101) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data



--------------------
<удалено администрацией форума>
PM MAIL   Вверх
EvgenZ
Дата 24.12.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



А да, совсем забыл стоит VS2005
вот сам код из книги 
Код

//---------------------------------------------------------------------------------------
// WindowsBazis.CPP 
// Данное приложенние создает простейшее окно  
//---------------------------------------------------------------------------------------

#include <windows.h>         // Подключаем заголовочный файл Windows
#include "resource.h"

//----------------------------------------------------------------------------------------
// Функция
// MainWinProc()
// Здесь происходит обработка сообщенний
//----------------------------------------------------------------------------------------

LRESULT CALLBACK MainWinProc(HWND hwnd,             //Дескриптор окна
                            UINT msg,               //идентефикатор сообщение  
                            WPARAM wparam,          //Дополнительная информация 
                            LPARAM lparam)          //Дополнительная информация
{

switch(msg)
    {    
    

    case WM_PAINT: 
         break;

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

    } 

  return (DefWindowProc(hwnd, msg, wparam, lparam));
} 
//---------------------------------------------------------------------------------------
// Функция
// WinMain()
// Входная точка приложения
//---------------------------------------------------------------------------------------

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

WNDCLASSEX windowsclass; // Создем класс
HWND       hwnd;         // Создаем дескриптор окна
MSG        msg;          // Сообщение


// Определим класс окна WNDCLASSEX
windowsclass.cbSize         = sizeof(WNDCLASSEX);
windowsclass.style            = CS_DBLCLKS | CS_OWNDC | 
                              CS_HREDRAW | CS_VREDRAW;
windowsclass.lpfnWndProc    = MainWinProc;
windowsclass.cbClsExtra        = 0;
windowsclass.cbWndExtra        = 0;
windowsclass.hInstance        = hinstance;
windowsclass.hIcon            = LoadIcon(hinstance, IDI_ICON1);
windowsclass.hCursor        = LoadCursor(NULL, IDC_ARROW);
windowsclass.hbrBackground    = (HBRUSH)GetStockObject(GRAY_BRUSH);
windowsclass.lpszMenuName    = NULL;
windowsclass.lpszClassName    = "WINDOWSCLASS";
windowsclass.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);

// Зарегестрируем класс
if (!RegisterClassEx(&windowsclass))
    return(0);

// Теперь когда класс зарегестрирован можно создать окно

if (!(hwnd = CreateWindowEx(NULL,              // стиль окна
                            "WINDOWSCLASS",    // класс
                            "Урок 1. Базовое Окно для DirectX ",    // название окна
                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                            300,150,               // левый верхний угол
                            500,400,           // ширина и высота
                            NULL,               // дескриптор родительского окна 
                            NULL,               // дескриптор меню
                            hinstance,         // дескриптор экземпляра проложенния
                            NULL)))               // указатель на данные созданного окна
return(0);
     
     
        ShowWindow( hwnd, SW_SHOWDEFAULT );    //Нарисуем окно    
        UpdateWindow( hwnd );                  //Обновим окно    

while(GetMessage(&msg,NULL,0,0))
     { 
     
     TranslateMessage(&msg);

     DispatchMessage(&msg);
     } 


return(msg.wParam);

} 






Это сообщение отредактировал(а) EvgenZ - 24.12.2006, 19:13


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
Rickert
Дата 2.1.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



koljan, ну и радуйся, что есть такие ошибки в учебниках smile
У меня брат когда учил азы асма, то учил по книге дядюшки Нортона, и в ней тьма ошибок. Не понятно - сознательно они сделаны или нет. Зато, когда их ищешь и исправляешь - очень многое для себя открываешь.  smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
EvgenZ
Дата 3.1.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



Подскажите пожалуйста что значит L.
Код

if (!(hwnd = CreateWindowEx(NULL,              //
                            "WINDOWSCLASS",    //с добавлением L заработает L"WINDOWSCLASS", 
                            "Урок 1. Базовое Окно для DirectX ",    // заработает если добавить L, т.е. вот так  L"Урок 1. Базовое Окно для DirectX ",    
                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                            300,150,              
                            500,400,           
                            NULL,               
                            NULL,               
                            hinstance,         
                            NULL)))               
return(0);




--------------------
<удалено администрацией форума>
PM MAIL   Вверх
AssassinFX
Дата 3.1.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 2.1.2007

Репутация: 3
Всего: 3



EvgenZ,Если прогаеш в юникоде(UNICODE) надо ставить перед текстом L иначе компилятор будет ругатся.
Всмысле перед тем текстом где он в " " а то будеш ставить где попало smile 
Код

if (!(hwnd = CreateWindowEx(NULL,               
                            L"WINDOWSCLASS",     
                            L"Урок 1. Базовое Окно для DirectX ",       
                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,    
                            300,150,               
                            500,400,            
                            NULL,                
                            NULL,                
                            hinstance,          
                            NULL)))                
return(0);


Добавлено @ 21:40 
EvgenZ, 
Код

fatal error C1083: Cannot open include file: 'resource.h': No such file or directory

Это означает что компилятор неможет найти файла resource.h из которога грузится иконка(windowsclass.hIcon            = LoadIcon(hinstance, IDI_ICON1);) файла нет получаем ошибку
Код

 error C2065: 'IDI_ICON1' : undeclared identifier

В остальном добавь L где показал.

Это сообщение отредактировал(а) AssassinFX - 3.1.2007, 21:41
PM MAIL   Вверх
EvgenZ
Дата 3.1.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



AssassinFX, спасибо!!!
Подскажите пожалуйста где неправильно и почему, выбрасывает... похоже не инициализируется 3Д...
Код

#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    = MainWinProc;
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    = L"WINDOWSCLASS";
windowsclass.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);


if (!RegisterClassEx(&windowsclass))
    return(0);



if (!(hwnd = CreateWindowEx(NULL,              
                       L"WINDOWSCLASS",         
                       L"Рисуем Квадрат ",  
                       WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                       300,150,                  
                       500,400,              
                       NULL,                   
                       NULL,                 
                       hinstance,              
                       NULL)))                                                           
return 0;
     
     
 if( SUCCEEDED( InitialDirect3D( hwnd ) ) )
  { 
       if( SUCCEEDED( 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();
                } 
        }
  } 
   return 0;
}



--------------------
<удалено администрацией форума>
PM MAIL   Вверх
AssassinFX
Дата 3.1.2007, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 2.1.2007

Репутация: 3
Всего: 3



EvgenZ,Извени нехочется шас создавать новое приложение в VS smile когда выбрасывает на какую строчку указывает?
И возьми лучше другие примеры smile 
www.codesampler.com
www.paulsprojects.net

Добавлено @ 22:32 
Если дествительно проблема с Д3Д попробуй заменить на это:
девайс
LPDIRECT3DDEVICE9 m_device3D;
Код

IDirect3D9* D3D = NULL;
    D3D = Direct3DCreate9( D3D_SDK_VERSION );

    D3DDISPLAYMODE d3ddm;
    D3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm );

    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory( &d3dpp, sizeof(d3dpp) );

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

    D3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
                          D3DCREATE_HARDWARE_VERTEXPROCESSING,
                          &d3dpp, &m_device3D );


Это сообщение отредактировал(а) AssassinFX - 3.1.2007, 22:28
PM MAIL   Вверх
EvgenZ
Дата 3.1.2007, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



Код

if( FAILED( pDirect3D -> CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
                                      D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                      &Direct3DParametr, &pDirect3DDevice ) ) )

вот тут кидает ошибку.


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
AssassinFX
Дата 3.1.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 2.1.2007

Репутация: 3
Всего: 3



EvgenZ,Незнаю вобщем,возьми другие примеры или тот код который я показал,если тот код работать небудет значит проблема не в этом. smile 
PM MAIL   Вверх
EvgenZ
Дата 3.1.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



AssassinFX, спасибо за помощь, не особо понял разницу между приведеным тобой куском кода и из примера...

Если кто может подсказать, помогите пожалуйста.


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
AssassinFX
Дата 3.1.2007, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 2.1.2007

Репутация: 3
Всего: 3



EvgenZ,Разница в том что мой кусок кода сто процентов работает,так как этот кусок кода уже давно служит smile 
PM MAIL   Вверх
EvgenZ
Дата 3.1.2007, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: нет
Всего: 11



Так в примере тоже самое + проверки.


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.