Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
#MRoose
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
1

Любой проект - с ошибками. Что делать?

01.11.2014, 16:56. Показов 2573. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!Создал проект по примеру с
http://d3dbegin.narod.ru
... ошибки лан сделал по видео потом по понял что нужно #pragma...lib... но все равно не объявленные внешние элемееты

код
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
 
#include <Windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <mmsystem.h>
 
 
LPDIRECT3D9 pDirect3D = NULL;
LPDIRECT3DDEVICE9 pDirect3DDevice = NULL;
LPDIRECT3DVERTEXBUFFER9 pBufferVershin = NULL;
LPDIRECT3DINDEXBUFFER9 pBufferIndex = NULL;
 
 
struct CUSTOMVERTEX
{
    FLOAT x, y, z;
    DWORD color;
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|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;
    Direct3DParametr.EnableAutoDepthStencil = TRUE;
    Direct3DParametr.AutoDepthStencilFormat = D3DFMT_D16;
 
    if (FAILED(pDirect3D->CreateDevice(
        D3DADAPTER_DEFAULT,
        D3DDEVTYPE_HAL, hwnd,
        D3DCREATE_SOFTWARE_VERTEXPROCESSING,
        &Direct3DParametr,
        &pDirect3DDevice)))
        return E_FAIL;
 
    pDirect3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW);
    pDirect3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
    pDirect3DDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
 
    return S_OK;
}
 
 
HRESULT InitialObject()
{
    CUSTOMVERTEX Vershin[] =
    {
        { 1.0f, -1.0f, -1.0f, 0x00000fff, },
        { 1.0f, 1.0f, -1.0f, 0x00000fff, },
        { -1.0f, 1.0f, -1.0f, 0x00000fff, },
        { -1.0f, -1.0f, -1.0f, 0x00000fff, },
 
        { -1.0f, -1.0f, -1.0f, 0xffff0000, },
        { -1.0f, 1.0f, -1.0f, 0xffff0000, },
        { -1.0f, 1.0f, 1.0f, 0xffff0000, },
        { -1.0f, -1.0f, 1.0f, 0xffff0000, },
 
        { -1.0f, -1.0f, 1.0f, 0x00000fff, },
        { -1.0f, 1.0f, 1.0f, 0x00000fff, },
        { 1.0f, 1.0f, 1.0f, 0x00000fff, },
        { 1.0f, -1.0f, 1.0f, 0x00000fff, },
 
        { 1.0f, -1.0f, 1.0f, 0xff0fff00, },
        { 1.0f, 1.0f, 1.0f, 0xff0fff00, },
        { 1.0f, 1.0f, -1.0f, 0xff0fff00, },
        { 1.0f, -1.0f, -1.0f, 0xff0fff00, },
 
        { 1.0f, -1.0f, -1.0f, 0xfff000ff, },
        { -1.0f, -1.0f, -1.0f, 0xfff000ff, },
        { -1.0f, -1.0f, 1.0f, 0xfff000ff, },
        { 1.0f, -1.0f, 1.0f, 0xfff000ff, },
 
        { 1.0f, 1.0f, 1.0f, 0xfff000ff, },
        { -1.0f, 1.0f, 1.0f, 0xfff000ff, },
        { -1.0f, 1.0f, -1.0f, 0xfff000ff, },
        { 1.0f, 1.0f, -1.0f, 0xfff000ff, },
    };
 
    const unsigned short Index[] =
    {
        0, 1, 2, 2, 3, 0,
        4, 5, 6, 6, 7, 4,
        8, 9, 10, 10, 11, 8,
        12, 13, 14, 14, 15, 12,
        16, 17, 18, 18, 19, 16,
        20, 21, 22, 22, 23, 20,
    };
 
    if (FAILED(pDirect3DDevice->CreateVertexBuffer(
        36 * 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();
 
    pDirect3DDevice->CreateIndexBuffer(36 * sizeof(Index), 0, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &pBufferIndex, NULL);
 
    VOID* pBI;
    pBufferIndex->Lock(0, sizeof(Index), (void**)&pBI, 0);
 
    memcpy(pBI, Index, sizeof(Index));
 
    pBufferIndex->Unlock();
 
    return S_OK;
}
 
 
VOID Matrix()
{
    D3DXMATRIX MatrixWorld, MatrixWorldX, MatrixWorldY, MatrixWorldZ;
    D3DXMATRIX MatrixView;
    D3DXMATRIX MatrixProjection;
 
    UINT Time = timeGetTime() % 5000;
    FLOAT Angle = Time * (2.0f * D3DX_PI) / 5000.0f;
    D3DXMatrixRotationX(&MatrixWorldX, Angle);
    D3DXMatrixRotationY(&MatrixWorldY, Angle);
    D3DXMatrixMultiply(&MatrixWorld, &MatrixWorldX, &MatrixWorldY);
 
    pDirect3DDevice->SetTransform(D3DTS_WORLD, &MatrixWorld);
 
    D3DXMatrixLookAtLH(&MatrixView, &D3DXVECTOR3(0.0f, 0.0f, -8.0f),
        &D3DXVECTOR3(0.0f, 0.0f, 0.0f),
        &D3DXVECTOR3(0.0f, 1.0f, 0.0f));
    pDirect3DDevice->SetTransform(D3DTS_VIEW, &MatrixView);
 
    D3DXMatrixPerspectiveFovLH(&MatrixProjection, D3DX_PI / 4, 1.0f, 1.0f, 100.0f);
    pDirect3DDevice->SetTransform(D3DTS_PROJECTION, &MatrixProjection);
}
 
 
VOID RenderingDirect3D()
{
    if (pDirect3DDevice == NULL)
        return;
 
    pDirect3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(60, 100, 150), 1.0f, 0);
    pDirect3DDevice->BeginScene();
    Matrix();
 
    pDirect3DDevice->SetStreamSource(0, pBufferVershin, 0, sizeof(CUSTOMVERTEX));
    pDirect3DDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
    pDirect3DDevice->SetIndices(pBufferIndex);
    pDirect3DDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 36, 0, 12);
    pDirect3DDevice->EndScene();
    pDirect3DDevice->Present(NULL, NULL, NULL, NULL);
}
 
 
 
VOID DeleteDirect3D()
{
    if (pBufferIndex != NULL)
        pBufferIndex->Release();
    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 wc;
    HWND hwnd;
    MSG msg;
 
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_VREDRAW | CS_HREDRAW | CS_OWNDC | CS_DBLCLKS;
    wc.lpfnWndProc = MainWinProc;
    wc.cbClsExtra = wc.cbWndExtra = 0;
    wc.hInstance = hinstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = ("WINDOWSCLASS");
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
 
    if (!RegisterClassEx(&wc))
        return (0);
 
    if (!(hwnd = CreateWindowEx(NULL, ("WINDOWCLASS"), ("Вращаем куб"), WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        300, 150, 500, 400, NULL, NULL, hinstance, NULL)))
        return (0);
 
    if (SUCCEEDED(InitialDirect3D(hwnd)))
    {
        if (SUCCEEDED(InitialObject()))
        {
            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);
}
ошибки

Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _Direct3DCreate9@4 в функции "long __cdecl InitialDirect3D(struct HWND__ *)" (?InitialDirect3D@@YAJPAUHWND__@@@Z) C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Исходный код.obj Динамичеки куб с видео
Ошибка 4 error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixRotationY@8 в функции "void __cdecl Matrix(void)" (?Matrix@@YAXXZ) C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Исходный код.obj Динамичеки куб с видео
Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixRotationX@8 в функции "void __cdecl Matrix(void)" (?Matrix@@YAXXZ) C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Исходный код.obj Динамичеки куб с видео
Ошибка 6 error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixPerspectiveFovLH@20 в функции "void __cdecl Matrix(void)" (?Matrix@@YAXXZ) C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Исходный код.obj Динамичеки куб с видео
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixMultiply@12 в функции "void __cdecl Matrix(void)" (?Matrix@@YAXXZ) C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Исходный код.obj Динамичеки куб с видео
Ошибка 5 error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixLookAtLH@16 в функции "void __cdecl Matrix(void)" (?Matrix@@YAXXZ) C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Исходный код.obj Динамичеки куб с видео
Ошибка 7 error LNK1120: неразрешенных внешних элементов: 6 C:\Users\Miramix\Documents\Visual Studio 2013\Projects\Динамичеки куб с видео\Debug\Динамичеки куб с видео.exe Динамичеки куб с видео

скрин
Миниатюры
Любой проект - с ошибками. Что делать?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2014, 16:56
Ответы с готовыми решениями:

Что делать с ошибками?
С наступающим! Подскажите, хочу услышать ваше мнение относительно проблемы, с которой я...

Подкиньте любой проект, посмотреть, что к чему
собственно говоря сабж) Было бы неплохо на практике узреть эту штучку, а то все только на теории...

материнская плата elitegroup g 41t -m13 не загружаеть windows любой что делать
материнская плата elitegroup g 41t -m13 не загружаеть windows любой что делать

Не работает проект, что делать?
Справка выдайот: Этот документ был открыт с Выведенным из строя Макроопределением ('This document...

6
#MRoose
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
01.11.2014, 17:00  [ТС] 2
Windows 8.1 но использовал DirectX SDK от июня то есть 9й так как в примерах он

Добавлено через 28 секунд
это динамический куб
0
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
04.11.2014, 09:21 3
1. Проект сразу выдает ошибку, если не подключены user32.lib, kernel32.lib, gdi32.lib, winmm.lib при компоновке, но так как у вас MS VS, то уже у вас эти библиотеки указаны.
2. С такой же как у вас проблемой, я тоже сталкивался, в том смысле, что компоновщик не может найти конкретно именно Direct3DCreate9, а также D3DXMatrixRotationY, причем они объявлены в библиотеках d3d9.lib d3dx9.lib чисто конкретно уже указанных компоновщику и действительно там имеющихся. Я на эти ошибки натыкался уже сотни раз, так что нужно фиксировать их решение, так в голове оно не удержится, и снова и снова нужно будет исправлять одну и ту же ошибку.
3. После запуска программа не работает, то есть окно не появляется, но при этом и ошибки не выдаются.
4. В подобных проектах, я натыкаюсь на одни и те же грабли. Нужно где-то фиксировать способы решения возникающих проблем, так как с ними можно столкнуться тысячи раз еще раз. Ошибка в том, что окно не создается.


Создал пустой проект в MS VC Express 2010. Создаю .cpp файл и вставляю ваш код.
Лог компиляции:
1>------ Build started: Project: q222, Configuration: Debug Win32 ------
1> q222.cpp
1>c:\users\александр\documents\visual studio 2010\projects\q222\q222\q222.cpp(6): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Студия не понимает, где находится 'd3dx9.h', причем у меня уже установлен DirectX SDK, причем заголовочные файлы прописаны в переменной INCLUDE переменных среды (ENVIRONMENT PATH). Захожу в Project properties, раздел Configuration properties, раздел VC++ directories.
В Include directories указано $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(F rameworkSDKDir)\include; то есть MS VC Express не учитывает переменные среды при компиляции. Нужно указать, где находится 'd3dx9.h' вручную, как обычно вручную. Захожу в Edit: хардкодно указываю C:\Program Files\Microsoft DirectX SDK %28June 2010%29\Include . Указал. Нажимаю "применить". Нажимаю "ОК".

Новая попытка компиляциии: выбираю пункт в меню Debug, в субменю выбираю Build solution.
Лог компиляции, как обычно провалб но так как такой провал будет повторяться с каждым разом, нужно фиксировать решение проблемы в отдельном файле.
1>------ Build started: Project: q222, Configuration: Debug Win32 ------
1> q222.cpp
1>c:\users\александр\documents\visual studio 2010\projects\q222\q222\q222.cpp(217): error C2440: '=' : cannot convert from 'const char [13]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\александр\documents\visual studio 2010\projects\q222\q222\q222.cpp(224): error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [12]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Из раза в раз от одного проекта к другому одна и та же ошибка
1>c:\users\александр\documents\visual studio 2010\projects\q222\q222\q222.cpp(217): error C2440: '=' : cannot convert from 'const char [13]' to 'LPCWSTR'
С этой ошибкой придется столкнуться еще тысячи раз и по-другому не бывает. Компилятор автоматически не понимает отличие 'const char [13]' от 'LPCWSTR'.
Перехожу на строчку 217
Там код
C++
1
    wc.lpszClassName = ("WINDOWSCLASS");
Так как разрешение .cpp то код на языке C++.
Почему LPCWSTR? Так как поле lpszClassName структуры WNDCLASSEX имеет тип LPCWSTR.
LPCWSTR определен как
C++
1
 typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;
WCHAR определен как
C++
1
 typedef wchar_t WCHAR;
wchar_t встроен в версию компилятора от Microsoft как стандартный базовый тип и не является переносимым на другие компиляторы (это не значит, что GCC в версии MinGW не понимает этот тип).

ЯВНО преобразовываю тип
C++
1
     wc.lpszClassName = (LPCWSTR)"WINDOWSCLASS";
Аналогично ЯВНО преобразовываю тип в строке
C++
1
 if (!(hwnd = CreateWindowEx(NULL, ("WINDOWCLASS"), ("Вращаем куб"), WS_OVERLAPPEDWINDOW | WS_VISIBLE,
заменяя на
C++
1
 if (!(hwnd = CreateWindowEx(NULL, (LPCWSTR)"WINDOWCLASS", (LPCWSTR)"Вращаем куб", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
Добавлено через 6 минут
После преобразований, пробую компилировать еще раз
Лог компиляции:
1>------ Build started: Project: q222, Configuration: Debug Win32 ------
1> q222.cpp
1>LINK : fatal error LNK1104: cannot open file 'd3dx9.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Компоновщик не может найти статическую библиотеку 'd3dx9.lib' входящую в состав поставки DirectX SDK
Захожу в project properties. VC++ directories. Раздел Library directories. Edit. Хардкодно прописываю C:\Program Files\Microsoft DirectX SDK %28June 2010%29\Lib\x86. Применить. ОК.

Пробую компилировать: Debug - Build solution

1>------ Build started: Project: q222, Configuration: Debug Win32 ------
1>q222.obj : error LNK2019: unresolved external symbol __imp__timeGetTime@0 referenced in function "void __cdecl Matrix(void)" (?Matrix@@YAXXZ)
1>c:\users\александр\documents\visual studio 2010\Projects\q222\Debug\q222.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Не указана библиотека Winmm.lib

Прописываю ее директивой #pragma
C++
1
#pragma comment(lib, "winmm.lib")
Снова компилирую. ЛОГ БЕЗ ОШИБОК. Но на подобные ошибки с библиотеками придется наткнуться еще тысячи раз и раза в раз.
1>------ Build started: Project: q222, Configuration: Debug Win32 ------
1> q222.cpp
1> q222.vcxproj -> c:\users\александр\documents\visual studio 2010\Projects\q222\Debug\q222.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
ПРОВЕРЯЮ, работает или нет. Запускаю: Debug - Start debugging.

Добавлено через 14 минут
Итог запуска: The program '[11512] q222.exe: Native' has exited with code 0 (0x0).

ПРОГРАММА ОШИБОЧНО ВЫШЛА, НЕ СОЗДАВ ОКНО.

Изменяю код следующим образом

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  if (!(hwnd = CreateWindowEx(NULL, (LPCWSTR)"WINDOWCLASS", (LPCWSTR)"Вращаем куб", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        300, 150, 500, 400, NULL, NULL, hinstance, NULL)))
    {
        char str[128];
        sprintf(str, "%x", GetLastError());
        FILE* f;
        f = fopen("log.txt", "w");
        fprintf(f, "%s", str);
        fclose(f);
 
        MessageBox(NULL, (LPCWSTR)str,  (LPCWSTR)str, NULL);
        return (0);
    }
В файле log.txt код ошибки, полученный функцией GetLastError. Там написано 57f.
Захожу в google. Запрос GetLastError error codes. Перехожу по первой же ссылке: http://msdn.microsoft.com/ru-r... s.85).aspx (System Error Codes)

Преобразовываю шестнадцатеричное 57f в десятичное, получаю 1407.
Перехожу по ссылке http://msdn.microsoft.com/ru-r... s.85).aspx
Смотрю
ERROR_CANNOT_FIND_WND_CLASS1407 (0x57F)
Cannot find window class.
Ошибка в том, что такого оконного класса в системе не зарегистрировано, имеется в виду WNDCLASSEX.
Однако выход на ошибке создания класса не происходит, то есть класс на самом деле создан. Если бы его не была, программы бы вышла в коде:
C++
1
2
    if (!RegisterClassEx(&wc))
        return (0);
Однако этот кусок проходится программой.

Добавлено через 8 минут
Пример заведомо правильного работюающего приложения с созданием окна

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
#include <windows.h>
#include <math.h>
#include <stdio.h>
 
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "gdi32.lib")
 
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
 
HDC hdc;
 
switch (uMsg)
{
case WM_LBUTTONDOWN: return 0;
case WM_MOUSEMOVE: return 0;
case WM_LBUTTONUP: return 0;
case  WM_DESTROY: PostQuitMessage(NULL); return 0;
case WM_PAINT: return 0;
case WM_KEYDOWN: return 0;
default: return DefWindowProc(hwnd, uMsg,wParam, lParam);
}
return DefWindowProc(hwnd, uMsg,wParam, lParam);
}
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine, int CmdShow)
{
WNDCLASSEX wc;
MSG msg;
HWND hwnd;
 
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;
wc.cbClsExtra = NULL;
wc.cbWndExtra = NULL;
wc.hInstance = hInst;
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName =  "SimpleWinClass";
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hIconSm =LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
 
RegisterClassEx(&wc);
 
hwnd = CreateWindowEx(NULL, "SimpleWinClass", "Window", 
WS_OVERLAPPEDWINDOW, 
CW_USEDEFAULT, CW_USEDEFAULT, 
CW_USEDEFAULT, CW_USEDEFAULT, 
NULL, NULL, hInst, NULL);
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
 
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
 
return msg.wParam;
}
 
int main(int argc, char* argv[])
{
HINSTANCE hInstance = GetModuleHandle(0);
LPSTR CommandLine = GetCommandLine();
 
return WinMain(hInstance, NULL,CommandLine, SW_SHOWDEFAULT);
 
return 0;
}
1
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
04.11.2014, 09:43 4
Если я вставляю код из заведомо работающего проекта, то окно создается, однако не инициализируется DirectX


Добавлено через 15 минут
Заменяю "WINDOWCLASS" на "s". Окно создано. Программа работает. То есть проблема в том, что строку "WINDOWCLASS" нельзя использовать для создания класса.
1
#MRoose
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
04.11.2014, 14:56  [ТС] 5
Так здорово что хоть кто-то ответил! Спасибо огромное попробую. но я указал все что возможно в дополнительных зависимостях.Пробуйте скопировать 1й урок из d3dbegin.narod.ru у него все получается у меня нет. ведь подключал я и либы и заголовочные директа но ...
Вот этот куб в конце видео

почему у него все спокойно запустилось?
0
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
04.11.2014, 14:58 6
Вот проект в прикрепленном файле. Попробуйте у себя скомпилировать и запустить.
Вложения
Тип файла: 7z q222.7z (257.8 Кб, 10 просмотров)
1
#MRoose
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
04.11.2014, 14:59  [ТС] 7
Alexandr_1982, извиняюсь хотел прикрепить видео но не разобрался с функциями))
0
04.11.2014, 14:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2014, 14:59
Помогаю со студенческими работами здесь

Проект ТоDo (что делать)
Итак что нужно: Нужна программа грубо говоря ежедневника, т.е. нужно чтобы она строила список...

STS не импортирует проект, что делать?
Здравствуйте уважаемые форумчане! При импортировании проекта выдает ошибку. Может кто знает чего...

Установка любой ОС проходит с ошибками.
Здраствуйте, когда ставлю Windows XP или Windows 7 то при копировании файлов пишет что файл какойто...

Подскажите пожалуйста,что делать если фпс в любой из игр начинает колебаться от 60 до 10 с интервалом 1 секунда
(Ноутбук) Раньше такого не было. Процессор:Intel Core i-3 5010U Видеокарта:GeForce 940M ОП:8Gb...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru