Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Инициализация Direct3D на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка error C2146: syntax error : missing ';' before identifier 'alph' http://www.cyberforum.ru/cpp-beginners/thread308024.html
Не получается откомпилировать прогу из консоля в MFC, выбивает ошибку error C2146: syntax error : missing ';' before identifier 'alph' Код консоля: // vijiner.cpp : Defines the entry point for...
C++ Вывести слова вместе со счетчиком их повторений Доброго времени суток. Помогите с прогой пожалуйста. Ввести строку. Вывести пословно вместе со счетчиком повторений этого слова. http://www.cyberforum.ru/cpp-beginners/thread308016.html
C++ Разбить слово на буквы
Необходимо введенное слово разбить на буквы. Подскажите где копать, или приведите пример... Еще хотелось бы узнать, почему получается так: char TextMsg = "привет"; cout << TextMsg; //...
C++ деревья
собственно написал программу на с++, которая выводит бинарное дерево. но почему на третьем узле ветки смещаются. и я никак не могу найти причину этого сдвига в проге. пожалуйста помоги разобраться в...
C++ Из main невидно класс. Текст всех файлов проекта внутри. http://www.cyberforum.ru/cpp-beginners/thread307986.html
Есть класс Cat. Я хочу создать его экземпляр внутри функции main, но не могу получить доступ к классу. Вообще не понимаю почему. В чём ошибка? Проект: Заголовочные файлы: #pragma once...
C++ Найти слово, встречающееся в каждом предложении, или сообщить, что такого слова нет Люди выручите пожалуйста, надо программу на С++, Дан файл, содержащий текст на русском языке. Найти слово, встречающееся в каждом предложении, или сообщить, что такого слова нет. За ранее... подробнее

Показать сообщение отдельно
vlad_ltd
3 / 3 / 0
Регистрация: 30.04.2011
Сообщений: 51

Инициализация Direct3D на С++ - C++

30.05.2011, 02:27. Просмотров 2184. Ответов 4
Метки (Все метки)

Столкнулся с проблемами при изучении DirectX. Останавился на инициализации Direct3D, потому что
1. Пробую пример из самплов SDK - все работает, если что то изменяю, запускаю (выдается ошибка), отменяю действие и опять запускаю, ошибка остается, пример становится не рабочим. Первый раз переустановил SDK, потом стал делать копии примеров.

2. Примеры из книг Frank D. Luna и Фленова, с моими знаниями не отредоктировать под MVC2008

3. Нашел пример DirectX API: Инициализация Direct3D на сайте, но он тоже не запускался и ошибка была для меня не понятная(номер строки не был указан). Методом тыка понял что загвоздка на 34ой строчке. Цитата с сайта:
Итак, программа использующая Direct3D начинается с получения указателя на интерфейс IDirect3D9. С помощью полученного объекта можно создать нужный нам объект IDirect3DDevice9. Получить указатель на IDirect3D9 можно с помощью одной из немногих функций Direct3D:

d3d = Direct3DCreate9(D3D_SDK_VERSION);
но компилятор говорит, аргумент функции Direct3DCreate9 не приемлем.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include<d3d9.h>
#include<windows.h>
 
LRESULT __stdcall WndProc(HWND, UINT, WPARAM, LPARAM); 
 
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE,
                       LPSTR , int nCmdShow)
{
    int iii=1;
   WNDCLASS wc;
   wc.style = CS_OWNDC;
   wc.lpfnWndProc = WndProc;
   wc.cbClsExtra = 0;
   wc.cbWndExtra = 0;
   wc.hbrBackground = (HBRUSH)(6);
   wc.hCursor = LoadCursor(0, IDC_ARROW);
   wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
   wc.hInstance = hInstance;
   wc.lpszClassName = L"class";
   wc.lpszMenuName = NULL; 
 
   RegisterClass(&wc); 
 
   HWND hWnd = CreateWindow(L"class",L"Инициализация Direct3D",
                            WS_OVERLAPPEDWINDOW,200,100,
                            500,500,NULL,NULL,hInstance,NULL); 
 
   ShowWindow(hWnd,nCmdShow);
   UpdateWindow(hWnd); 
 
   IDirect3D9* d3d = 0;       // объект Direct3D
   IDirect3DDevice9* dev = 0; // устройство (видеокарта) 
 
//   d3d = Direct3DCreate9(D3D_SDK_VERSION); 
 
   D3DPRESENT_PARAMETERS pp;
   ZeroMemory(&pp,sizeof(pp)); 
 
   pp.BackBufferWidth = 500;
   pp.BackBufferHeight = 500;
   pp.BackBufferFormat = D3DFMT_X8R8G8B8;
   pp.BackBufferCount = 1;
   pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
   pp.hDeviceWindow = hWnd;
   pp.Windowed = true; 
 
   d3d->CreateDevice(D3DADAPTER_DEFAULT,
                     D3DDEVTYPE_REF,hWnd,
                     D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                     &pp, &dev);
   MSG msg;
   while (iii)
   {
     if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
     {
       if (msg.message == WM_QUIT)
         break;
       TranslateMessage(&msg);
       DispatchMessage(&msg);
     } 
 
     dev->Clear(0,NULL,D3DCLEAR_TARGET,
                D3DCOLOR_XRGB(255,255,255),1.0f,0); 
 
     dev->BeginScene();
     dev->EndScene(); 
 
     dev->Present(NULL,NULL,NULL,NULL);
     } 
 
   if (dev != NULL)
     dev->Release();
   if (d3d != NULL)
     d3d->Release();
   return 0;
} 
 
 LRESULT __stdcall WndProc (HWND hWnd, UINT msg,
                            WPARAM wParam, LPARAM lParam)
{
   switch (msg)
   {
   case WM_DESTROY:
     PostQuitMessage(0);
     return 0;
   }
   return DefWindowProc(hWnd,msg,wParam,lParam);
}
4 Так и не понял чем отличаются главные функции
C++
1
2
3
4
5
6
7
8
9
10
int WINAPI WinMain(HINSTANCE hinstance,
                   HINSTANCE prevInstance, 
                   PSTR cmdLine,
                   int showCmd)
 
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE,
                       LPSTR , int nCmdShow)
 
 
INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT )
Если есть возможность, выложите пожалуйста код инициализированого Direct3D с заполниными структурами и интерфейсами. Тоесть каркас, в котором можно будет делать визуализацию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru