Пятница, 22 Ноября 2024, 08:57

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Инициализация Директс
imperator12Дата: Пятница, 06 Апреля 2012, 18:56 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Доброго времини суток. У меня проблема при Инициализация Директс.
Вот код
Выдает сообщения что Dev = 0

А если изменить и записать
То будет ошибка проверки hr с последующим Необработанное исключение в "0x004118cf" в "Game.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeeff9a". При работе функции Dev->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00000000, 1.0f, 0);

Но если d3dpp.Windowed = true; заменить на false то будет опять ошибка что и при первом коде.

Учусь по книге введения в программирование трехмерных игр

Буду очень благодарным за помощ.
TimKruzДата: Пятница, 06 Апреля 2012, 19:06 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote (imperator12)
Учусь по книге введения в программирование трехмерных игр

А там разве нет примера кода инициализации DirectX? Всегда обычно предлагают код, если не отдельно, то в самой книге...
Попробуй выполнить по шагам, т.е. IDE выполняет одну строчку кода за одно нажатие кнопки. И ещё должна быть функция отслеживания значений переменных по ходу выполнения программы. Может быть, увидишь, что выполняется не так, как описано в книге.
P.S. Наверняка в интернете где-нибудь валяется пример инициализации DirectX на C, и даже не один. Скачай и найди отличия от своего кода. smile


imperator12Дата: Пятница, 06 Апреля 2012, 20:12 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Quote (TimKruz)
А там разве нет примера кода инициализации DirectX? Всегда обычно предлагают код, если не отдельно, то в самой книге... Попробуй выполнить по шагам, т.е. IDE выполняет одну строчку кода за одно нажатие кнопки. И ещё должна быть функция отслеживания значений переменных по ходу выполнения программы. Может быть, увидишь, что выполняется не так, как описано в книге. P.S. Наверняка в интернете где-нибудь валяется пример инициализации DirectX на C, и даже не один. Скачай и найди отличия от своего кода.


Ну там где предполагаю ошибка код у меня стандартный.Отличая только в том как подается код(функции,класы,заголовочные файлы).Может гдето есть и какоето незначное отличае но я в етом не разбираюсь потому и не могу понять.
DemeronДата: Пятница, 06 Апреля 2012, 20:23 | Сообщение # 4
User created in C++
Сейчас нет на сайте
Где вообще Begin и End????
Code

if(Dev)      
{      
Dev->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00000000, 1.0f, 0);      
Dev->Present(0,0,0,0);      
}


Что это еще за бред??? Ты пытаешься сделать одно и тоже ничего не поменяв!
Code

hr = _d3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hwnd1,verch,&d3dpp,&Dev);
if(!(hr))      
{ hr=_d3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hwnd1,verch,&d3dpp,&Dev);}      
if(!(hr))      
MessageBox(hwnd1,"Esrer","Error",MB_OK);

Поменяй местами!
Code

PostQuitMessage(0);      
Dev->Release();      

Зачем ты это отлавливаешь?!?!
Code

case WM_PAINT:      
{      
hdc = BeginPaint(hwnd,&pc);      
EndPaint(hwnd,&pc);      
return 0;      
}break;      
default:break;


Почему эта переменная не в глобальных??? DirectX тоже надо освобождать, а не только его устройство!
Code
IDirect3D9* _d3d;


Quote
Учусь по книге введения в программирование трехмерных игр

surprised Если там такой код - выкинь её в мусорку! dry


Сообщение отредактировал Demeron - Пятница, 06 Апреля 2012, 20:28
imperator12Дата: Пятница, 06 Апреля 2012, 20:36 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Все разобрался сам. Все что надо было сделать ето написать проверку так


Ну и убрать обработку WM_PAINT что я сделать забыл.


Сообщение отредактировал imperator12 - Пятница, 06 Апреля 2012, 22:37
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг