Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/23: Рейтинг темы: голосов - 23, средняя оценка - 4.57
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116

Помогите с окном Windows

13.09.2009, 15:53. Показов 4896. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ув.Программисты помогите скачал книгу С. Горнакова "DirectX 9.
Уроки программирования на C++"
но вот проблемма пишу код вот сам код:
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//---------------------------------------------------------------------------------------
// WindowsBazis.CPP 
// Данное приложенние создает простейшее окно  
//---------------------------------------------------------------------------------------
 
#include <windows.h>         // Подключаем заголовочный файл Windows
 
 
//----------------------------------------------------------------------------------------
// Функция
// 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_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 (!RegisterClassEx(&windowsclass))
    return(0);
 
// Теперь когда класс зарегестрирован можно создать окно
 
if (!(hwnd = CreateWindowEx(NULL,              // стиль окна
                            "Windowsclass",    // класс
                            " Базовое Окно для DirectX ",    // название окна
                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                            0,0,               // левый верхний угол
                            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);
 
}
Выдаёт ошибку " error C2664: CreateWindowExW: невозможно преобразовать параметр 2 из 'const char [13]' в 'LPCWSTR'"
Помогите
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.09.2009, 15:53
Ответы с готовыми решениями:

Помогите с диалоговым окном
Доброго время суток! Только поставил VS2008 , на с++ пытаюсь создать диалоговое окно с обработчиком событий на нажатию на кнопку void...

Помогите создать отчет с собственным окном просмотра
Здравствуйте! Если кто-нибудь знает решение моей задачи, подскажите, очень нужно. А задача собственно такая: мое приложение имеет две формы...

Запуск программы одновременно с окном начальной настройки windows
здравствуйте. задача такая: модифицировать установочный образ windows так, чтобы после первой перезагрузки вместе с диалогом...

27
 Аватар для Nikita2009
105 / 104 / 9
Регистрация: 12.09.2009
Сообщений: 452
13.09.2009, 16:03
Какой компилятор???
0
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
13.09.2009, 16:05  [ТС]
Microsoft Visual Studio 2008
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
13.09.2009, 16:09
Stas96, видимо используешь последнюю студию?)
проблема в том, что ты используешь LPSTR, а необходимо LPCWSTR. Короче
пиши так

C++
1
2
3
4
5
6
7
8
9
10
if (!(hwnd = CreateWindowEx(NULL,              // стиль окна
                            TEXT("Windowsclass"),    // класс
                            TEXT(" Базовое Окно для DirectX "),    // название окна
                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                            0,0,                   // левый верхний угол
                            500,400,           // ширина и высота
                            NULL,                  // дескриптор родительского окна 
                            NULL,                  // дескриптор меню
                            hinstance,         // дескриптор экземпляра проложенния
                            NULL)))                 // указатель на данные созданного окна
2
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
13.09.2009, 16:47  [ТС]
Спасибо большое.....Нашел еще одну ошибку :
C++
1
windowsclass.lpszClassName      ; "WINDOWSCLASS";
написал так:
C++
1
windowsclass.lpszClassName=  "WINDOWSCLASS";
и опять ошибка:
error C2440: =: невозможно преобразовать 'const char [13]' в 'LPCWSTR'

Добавлено через 32 минуты
Помогите плиз(((
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
13.09.2009, 16:56
error C2440: =: невозможно преобразовать 'const char [13]' в 'LPCWSTR'

гоогле "visual studio unicode _T"
0
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
13.09.2009, 17:15  [ТС]
Все решил проьлемму всем спасибо вот в чем она заключалась :
C++
1
windowsclass.lpszClassName  =  L"WINDOWSCLASS";
перед классом надо было добавить "L"
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
13.09.2009, 17:48
Цитата Сообщение от Stas96 Посмотреть сообщение
Нашел еще одну ошибку :
я думал это была твоя опечатка


Цитата Сообщение от Stas96 Посмотреть сообщение
перед классом надо было добавить "L"
или
C++
1
TEXT("WINDOWSCLASS")
я же тебе написал, что связано с разной типизацией из-за юникода.
1
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
13.09.2009, 22:44  [ТС]
а вот TEXT я пробывал не вышло а L поставил и все заработало.....сПАСИБ ЗА ПОМОЩЬ

Добавлено через 1 час 50 минут
Извените но Помогите пожайлусто вот участок кода :
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
//----------------------------------------------------------------------------------------------------------
//InitialDirect3d
//инициализируем Direct3d
//----------------------------------------------------------------------------------------------------------
 
#include <windows.h> 
#include <d3d9.h>
 
//----------------------------------------------------------------------------------------------------------
//глобалные переменные
//----------------------------------------------------------------------------------------------------------
 
 
LPDIRECT3D9 pDirect3D = NULL;
LPDIRECT3DDEVICE9 Pdirect3DDevice = NULL;
//----------------------------------------------------------------------------------------------------------
//функция
//InitialDirect3d()
//инициализация Direcr3D
//----------------------------------------------------------------------------------------------------------
 
 
 
HRESULT IntialDirect3D(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_SOFTWARE_VERTEXPROCESSING,
               &Direct3DParametr, &pDirect3DDevice)))
    return E_FAIL;
return S_OK;
}
//------------------------------------------------------------------------------------------------
//функция
//RenderingDirect3D()
//рисование
//------------------------------------------------------------------------------------------------
VOID RenderingDirect3D()
{
if (pDirect3DDevice == NULL)
return;
pDirect3DDevice -> Clear(0,NULL, D3DCLEAR_TARGET,
                         D3DCOLOR_XRGB(255,255,0), l.0f, 0);
pDirect3DDevice -> BeginScene();
//Здесь происходит прорисовка сцены
pDirect3DDevice -> EndScene();//Конец Сцены
pDirect3DDevice -> Present(NULL, NULL, NULL, NULL);
}
//------------------------------------------------------------------
// Функция
// DeleteDirect3D()
// освобождение захваченных ресурсов
//------------------------------------------------------------------
VOID DeleteDirect3d()
{
    if (pDirect3DDevice != NULL )
        pDirect3D -> Release();
    if (pDirect3d != NULL)
        pDirect3d -> Release();
}
а вот ошибки некоторые я решил а некоторые немогу вот ошибки :
"1>e:\c++\программы\windowsbazis\windows bazis\windowsbazis.cpp(27) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(33) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(35) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(35) : error C2227: выражение слева от "->Clear" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: 'unknown-type'
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(36) : error C2065: l: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(36) : error C2143: синтаксическая ошибка: отсутствие ")" перед "константа"
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(36) : error C2059: синтаксическая ошибка: )
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(37) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(37) : error C2227: выражение слева от "->BeginScene" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: 'unknown-type'
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(39) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(39) : error C2227: выражение слева от "->EndScene" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: 'unknown-type'
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(40) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(40) : error C2227: выражение слева от "->Present" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: 'unknown-type'
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(49) : error C2065: pDirect3DDevice: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(51) : error C2065: pDirect3d: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(52) : error C2065: pDirect3d: необъявленный идентификатор
1>e:\c++\программы\windowsbazis\windowsb azis\windowsbazis.cpp(52) : error C2227: выражение слева от "->Release" должно указывать на тип класса, структуры или объединения либо на универсальный тип"
помогите если кто сталкивался щас сам пытаюсь но нечего не выходит



все решил))))
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
13.09.2009, 22:47
Stas96,
Глаза разуй!!!

Pdirect3DDevice
pDirect3DDevice

разницу видишь? :gigi:
0
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
20.09.2009, 19:08  [ТС]
Помогите вот еще один код немогу понять, что с ним :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef _DXFUNC_H_
#define _DXFUNC_H_
 
#include "d3d9.h"
 
 
//Функция инициализации Direct3D
HRESULT DX3DInit (IDirect3D9 **ppiD3D9,
                  IDirect3DDevice9 **ppiD3DDevice9,
                  HWND hWnd,
                  DWORD iWidth,
                  DWORD iHeight,
                  BOOL bFullScreen
                  );
#endif


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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include "dxfunc.h"
// Функция инициализации Direct3D
HRESULT DX3DInit(IDirect3D9 **ppiD3D9, 
                IDirect3DDevice9 **ppiD3DDevice9,
                HWND hWnd, 
                DWORD iWidth,
                DWORD iHeight,
                BOOL bFullScreen)
{
  // Инициализация 
  if((*ppiD3D9 = Direct3DCreate9(D3D_SDK_VERSION)) == NULL)
    return E_FAIL;
 
  // Заполняем основные параметры представления
  D3DPRESENT_PARAMETERS d3dpp;
  ZeroMemory(&d3dpp, sizeof(d3dpp));
 
  d3dpp.BackBufferWidth = iWidth;
  d3dpp.BackBufferHeight = iHeight;
 
  // Запрос на отображение в полноэкранном режиме
  int  iRes;
  if (!bFullScreen)
      iRes=MessageBox(hWnd,L"Use fullscreen mode?",L"Screen", MB_YESNO | MB_ICONQUESTION);
  else
      iRes = IDYES;
 
 
  if(iRes == IDYES)
  {
      //////////////////////////////////////////////////////////
      // Полноэкранный режим
      //////////////////////////////////////////////////////////
      // Установка параметров полноэкранного режима
      d3dpp.BackBufferFormat = D3DFMT_R5G6B5;
      d3dpp.SwapEffect       = D3DSWAPEFFECT_FLIP;
      d3dpp.Windowed         = FALSE;
      d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
      d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
  } 
  else 
  {
      //////////////////////////////////////////////////////////
      // Оконный режим
      //////////////////////////////////////////////////////////
      RECT wndRect;
      RECT clientRect;
      GetWindowRect(hWnd, &wndRect);
      GetClientRect(hWnd, &clientRect);   
 
      iWidth  = iWidth + (wndRect.right-wndRect.left)  - (clientRect.right-clientRect.left);
      iHeight = iHeight + (wndRect.bottom-wndRect.top) - (clientRect.bottom-clientRect.top);
 
      MoveWindow(hWnd, wndRect.left, wndRect.top, iWidth, iHeight, TRUE);
 
      // Получить формат пикселя
      D3DDISPLAYMODE d3ddm;
      (*ppiD3D9)->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
 
      // Установка параметров
      d3dpp.BackBufferFormat = d3ddm.Format;
      d3dpp.SwapEffect       = D3DSWAPEFFECT_DISCARD;
      d3dpp.Windowed         = TRUE;
  }
  
  DWORD Flags= D3DCREATE_MIXED_VERTEXPROCESSING;
 
  // Создать 3D устройство
  HRESULT hRes;
  if(FAILED(hRes = (*ppiD3D9)->CreateDevice(
      D3DADAPTER_DEFAULT, 
      D3DDEVTYPE_HAL, hWnd, Flags, 
      &d3dpp, ppiD3DDevice9)))
      return hRes;
 
  // Установить перспективу
  float Aspect = (float)d3dpp.BackBufferWidth / (float)d3dpp.BackBufferHeight;
  D3DXMATRIX  matProjection;
  D3DXMATRIXPerspectiveFovLH(&matProjection, D3DX_PI/4.0f, Aspect, 0.1f, 1000.0f);
  (*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
 
  (*ppiD3DDevice9)->SetRenderState(D3DRS_LIGHTING, FALSE);
 
  return S_OK;
}
 
HRESULT DX3DInitZ(IDirect3D9 **ppiD3D9, 
                IDirect3DDevice9 **ppiD3DDevice9,
                HWND hWnd, 
                DWORD iWidth,
                DWORD iHeight,
                BOOL bFullScreen)
{
  // Инициализация 
  if((*ppiD3D9 = Direct3DCreate9(D3D_SDK_VERSION)) == NULL)
    return E_FAIL;
 
  // Заполняем основные параметры представления
  D3DPRESENT_PARAMETERS d3dpp;
  ZeroMemory(&d3dpp, sizeof(d3dpp));
 
  d3dpp.BackBufferWidth = iWidth;
  d3dpp.BackBufferHeight = iHeight;
  d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
  d3dpp.EnableAutoDepthStencil = TRUE;
 
  // Запрос на отображение в полноэкранном режиме
  int  iRes;
  if (!bFullScreen)
      iRes=MessageBox(hWnd, "Use fullscreen mode?", "Screen", MB_YESNO | MB_ICONQUESTION);
  else
      iRes = IDYES;
 
  if(iRes == IDYES)
  {
      //////////////////////////////////////////////////////////
      // Полноэкранный режим
      //////////////////////////////////////////////////////////
      // Установка параметров полноэкранного режима
      d3dpp.BackBufferFormat = D3DFMT_R5G6B5;
      d3dpp.SwapEffect       = D3DSWAPEFFECT_FLIP;
      d3dpp.Windowed         = FALSE;
      d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
      d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
  } 
  else 
  {
      //////////////////////////////////////////////////////////
      // Оконный режим
      //////////////////////////////////////////////////////////
      RECT wndRect;
      RECT clientRect;
      GetWindowRect(hWnd, &wndRect);
      GetClientRect(hWnd, &clientRect);   
 
      iWidth  = iWidth + (wndRect.right-wndRect.left)  - (clientRect.right-clientRect.left);
      iHeight = iHeight + (wndRect.bottom-wndRect.top) - (clientRect.bottom-clientRect.top);
 
      MoveWindow(hWnd, wndRect.left, wndRect.top, iWidth, iHeight, TRUE);
 
      // Получить формат пикселя
      D3DDISPLAYMODE d3ddm;
      (*ppiD3D9)->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
 
      // Установка параметров
      d3dpp.BackBufferFormat = d3ddm.Format;
      d3dpp.SwapEffect       = D3DSWAPEFFECT_DISCARD;
      d3dpp.Windowed         = TRUE;
  }
  
  DWORD Flags= D3DCREATE_MIXED_VERTEXPROCESSING;
 
  // Создать 3D устройство
  HRESULT hRes;
  if(FAILED(hRes = (*ppiD3D9)->CreateDevice(
      D3DADAPTER_DEFAULT, 
      D3DDEVTYPE_HAL, hWnd, Flags, 
      &d3dpp, ppiD3DDevice9)))
      return hRes;
 
  // Установить перспективу
  float Aspect = (float)d3dpp.BackBufferWidth / (float)d3dpp.BackBufferHeight;
  D3DXMATRIX matProjection;
  D3DXMatrixPerspectiveFovLH(&matProjection, D3DX_PI/4.0f, Aspect, 2.0f, 1000.0f);
  (*ppiD3DDevice9)->SetTransform(D3DTS_PROJECTION, &matProjection);
 
  (*ppiD3DDevice9)->SetRenderState(D3DRS_LIGHTING, FALSE);
 
  return S_OK;
}
А вот список ошибок:
"1>.\dxfunc.cpp(81) : error C2065: D3DXMATRIX: необъявленный идентификатор
1>.\dxfunc.cpp(81) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "matProjection"
1>.\dxfunc.cpp(81) : error C2065: matProjection: необъявленный идентификатор
1>.\dxfunc.cpp(82) : error C2065: matProjection: необъявленный идентификатор
1>.\dxfunc.cpp(82) : error C2065: D3DX_PI: необъявленный идентификатор
1>.\dxfunc.cpp(82) : error C3861: D3DXMATRIXPerspectiveFovLH: идентификатор не найден
1>.\dxfunc.cpp(83) : error C2065: matProjection: необъявленный идентификатор
1>.\dxfunc.cpp(113) : error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char [21]' в 'LPCWSTR'
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>.\dxfunc.cpp(166) : error C2065: D3DXMATRIX: необъявленный идентификатор
1>.\dxfunc.cpp(166) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "matProjection"
1>.\dxfunc.cpp(166) : error C2065: matProjection: необъявленный идентификатор
1>.\dxfunc.cpp(167) : error C2065: matProjection: необъявленный идентификатор
1>.\dxfunc.cpp(167) : error C2065: D3DX_PI: необъявленный идентификатор
1>.\dxfunc.cpp(167) : error C3861: D3DXMatrixPerspectiveFovLH: идентификатор не найден
1>.\dxfunc.cpp(168) : error C2065: matProjection: необъявленный идентификатор"
0
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
23.09.2009, 23:03  [ТС]
ПОМОГИТЕ ПЛИЗЗЗЗЗЗЗЗЗ
0
Пробующий
 Аватар для galileopro
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
24.09.2009, 02:40
Может библиотеку какую забыл?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
24.09.2009, 10:51
берем первую ошибку...
читайте документацию.
Описывает матрицу:

typedef struct D3DXMATRIX : public D3DMATRIX {
public:
D3DXMATRIX() {};
D3DXMATRIX( CONST FLOAT * );
D3DXMATRIX( CONST D3DMATRIX& );
D3DXMATRIX(
FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44
);

// предоставляет доступ
FLOAT& operator () ( UINT Row, UINT Col );
FLOAT operator () ( UINT Row, UINT Col ) const;

// casting operators
operator FLOAT* ();
operator CONST FLOAT* () const;

// операторы назначения
D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
D3DXMATRIX& operator *= ( FLOAT );
D3DXMATRIX& operator /= ( FLOAT );

// одиночные операторы
D3DXMATRIX operator + () const;
D3DXMATRIX operator - () const;

// двойные операторы
D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
D3DXMATRIX operator * ( FLOAT ) const;
D3DXMATRIX operator / ( FLOAT ) const;

friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );

BOOL operator == ( CONST D3DXMATRIX& ) const;
BOOL operator != ( CONST D3DXMATRIX& ) const;

} D3DXMATRIX, *LPD3DXMATRIX;

Примечание

Эта структура прямой наследник структуры D3DMATRIX. Все эти параметры должны использовать структуру D3DMATRIX.

В Direct3D параметр 34 не может быть отрицательным. Оно принимает значение -1, если Вы собираетесь масштабировать.

В С++ программисты могут воспользоваться перегрузкой операторов. В С++ используя структуру D3DMATRIX перегружает конструкторы, одиночные и двойные операторы (включая равно).
Требования

Заголовки: объявить D3dx8math.h.
0
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
26.09.2009, 10:00  [ТС]
Извените конечно я только понял, что надо объявить D3dx8math.h.
0
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
28.09.2009, 10:25  [ТС]
Смотрите делаю дополниельную зависимость: d3dx9math.lib. Подключаю d3dx9math.h.
И пишет:
1>LINK : fatal error LNK1104: не удается открыть файл ''d3dx9math.lib''
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
28.09.2009, 12:18
а он у тебя есть?
d3dx9math.lib?
ты где DirectX SDK брал?
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
28.09.2009, 12:37
Stas96,
- найди путь, куда установил sdk
- там должны быть 2 каталога - include и lib
- пропиши их в соответствующих настройках студии, причем впереди остальных путей (например от windows sdk)
- enjoy.
1
 Аватар для Stas96
35 / 35 / 7
Регистрация: 31.08.2009
Сообщений: 116
28.09.2009, 12:57  [ТС]
прописывал путь.
d3dx9math есть только h файл
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
28.09.2009, 13:34
Stas96, я шучу.
файла d3dx9math.lib в SDK нет и не было никогда.
он называется d3dx9math.inl.
а вообще, здесь посмотри:
http://vertexland.narod.ru/data/directx.htm

народ, читайте документацию!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2009, 13:34
Помогаю со студенческими работами здесь

Как в консоли под Windows выкинуть исключение диалоговым окном?
Привет! Как можно выкинуть окошко виндусовское с красным крестиком, мол, хана! исключение там то ! в консоле самому? throw же работает в...

Как переключаться между окном игры и окном браузера, или скайпа, или т. п.?
Как переключаться между окнами игры и браузера/скайпа/итд? Включен оконный режим игры, курсор не выходит за его пределы. Чтобы...

После окна Windows HP Vista появляется чёрный экран с белым окном, где нечитабельные знаки и кнопка ОК
Пока ОК не нажимаю, белое окно с нечитабельными знаками (их 2-3) не закрывается. И только при ОК грузится окно приветствия. Что это?

Помогите с Windows 7
При включение ноутбука загружается в расширение 800х600 и в системном журнале есть ошибка: Источник: Kernel-PnP код события: 219 ...

Помогите С ОС windows
Привет всем:) скачал винду вот отсюда &lt;censored&gt; но прочитал пару статей о там что винда может быть уже либо заражена вирусами либо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru