Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Frazunk
0 / 0 / 2
Регистрация: 23.11.2014
Сообщений: 2
#1

Ошибка компиляции С++, OpenGL - C++

04.11.2015, 19:43. Просмотров 340. Ответов 1
Метки нет (Все метки)

Здравствуйте. Начали учить в университете OpenGL. Вот попытался сделать по примеру но при компиляции пишет "There were build errors.Would you like to continue and run the last successful build?". Решил исправить это путём перестройки проекта(проект Win32 ConsoleAplication пустой) Rebuild Solution, но проблема осталась и после ошибки пишет что не может найти путь к файлу. Пересоздал проект просто на диску D без подкаталогов, тоже не помогло. Так же в самом коде я так понял с кодировкой проблема. Попробовал через свойства проекта изменить Use Unicode на Use Multi-byte, вылазит еще больше ошибок. В общем, можете пожалуйста посмотреть и подсказать что не так и как это исправить.
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
#include <windows.h>        // Заголовочный файл для Windows
#include <gl\gl.h>      // Заголовочный файл для OpenGL32 библиотеки
#include <gl\glu.h>     // Заголовочный файл для GLu32 библиотеки
#include <gl\glaux.h>       // Заголовочный файл для GLaux библиотеки
static HGLRC hRC;       // Постоянный контекст рендеринга
static HDC hDC;         // Приватный контекст устройства GDI
BOOL    keys[256];      // Массив для процедуры обработки клавиатуры
GLvoid InitGL(GLsizei Width, GLsizei Height)    // Вызвать после создания
                                                // окна GL
{
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);   // Очистка экрана в черный цвет
}
GLvoid ReSizeGLScene(GLsizei Width, GLsizei Height)
{
    if (Height == 0)        // Предотвращение деления на ноль, 
                            //если окно слишком мало
        Height = 1;
 
    glViewport(0, 0, Width, Height);   // Сброс текущей области вывода 
}
GLvoid DrawGLScene(GLvoid)
{
    glClear(GL_COLOR_BUFFER_BIT);   // Очистка экрана
                                    // Здесь создается рисунок
    glPointSize(2);
    glBegin(GL_POINTS);
    glColor3f(1, 0, 0);
    glVertex2f(-0.45, -0.4); // первая точка
 
    glColor3f(0, 1, 0);
    glVertex2f(0.4, 0.4);   // вторая точка
 
    glColor3f(0, 0, 1);    //третья точка
    glVertex2f(-0.35, 0.4);
    glEnd();
 
    glLineWidth(3);
 
    glBegin(GL_LINE_STRIP);  // ломаная линия
    glColor3f(0.7, 0.3, 0);
    glVertex2f(-0.10, 0);
    glVertex2f(1, 0.13);
    glColor3f(0, 1, 0);
    glVertex2f(-0.15, 0.33);
    glColor3f(0, 0, 1);
    glVertex2f(-0.12, 0.35);
    glEnd();
    // здесь закончилось создание рисунка
}
 
LRESULT CALLBACK WndProc(HWND   hWnd,
    UINT    message,
    WPARAM  wParam,
    LPARAM  lParam)
{
    RECT    Screen;     // используется позднее для размеров окна
    GLuint  PixelFormat;
    static  PIXELFORMATDESCRIPTOR pfd =
    {
        sizeof(PIXELFORMATDESCRIPTOR)// Размер этой структуры
        1,              // Номер версии (?)
        PFD_DRAW_TO_WINDOW |        // Формат для Окна
        PFD_SUPPORT_OPENGL |        // Формат для OpenGL
        PFD_DOUBLEBUFFER,       // Формат для двойного буфера
        PFD_TYPE_RGBA,      // Требуется RGBA формат
        16,             // Выбор 16 бит глубины цвета
        0, 0, 0, 0, 0, 0,       // Игнорирование цветовых битов (?)
        0,              // нет буфера прозрачности
        0,              // Сдвиговый бит игнорируется (?)
        0,              // Нет буфера аккумуляции
        0, 0, 0, 0,         // Биты аккумуляции игнорируются (?)
        16,             // 16 битный Z-буфер (буфер глубины)
        0,              // Нет буфера траффарета
        0,              // Нет вспомогательных буферов (?)
        PFD_MAIN_PLANE,     // Главный слой рисования
        0,              // Резерв (?)
        0, 0, 0         // Маски слоя игнорируются (?)
    };
    switch (message)    // Тип сообщения
    {
    case WM_CREATE:
        hDC = GetDC(hWnd);  // Получить контекст устройства для окна
        PixelFormat = ChoosePixelFormat(hDC, &pfd);
        // Найти ближайшее совпадение для нашего формата пикселов
        if (!PixelFormat)
        {
            MessageBox(0, "Can't Find A SuitablePixelFormat.", "Error", MB_OK | MB_ICONERROR);
            PostQuitMessage(0);
            // Это сообщение говорит, что программа должна завершиться
            break;  // Предтовращение повтора кода
        }
        if (!SetPixelFormat(hDC, PixelFormat, &pfd))
        {
            MessageBox(0, "Can't Set ThePixelFormat.", "Error", MB_OK | MB_ICONERROR);
            PostQuitMessage(0);
            break;
        }
        hRC = wglCreateContext(hDC);
        if (!hRC)
        {
            MessageBox(0,
                "Can't Create A GLRenderingContext.",
                "Error", MB_OK | MB_ICONERROR);
            PostQuitMessage(0);
            break;
        }
        if (!wglMakeCurrent(hDC, hRC))
        {
            MessageBox(0, "Can't activate GLRC.", "Error", MB_OK | MB_ICONERROR);
            PostQuitMessage(0);
            break;
        }
        GetClientRect(hWnd, &Screen);
        InitGL(Screen.right, Screen.bottom);
        break;
    case WM_DESTROY:
    case WM_CLOSE:
        ChangeDisplaySettings(NULL, 0);
 
        wglMakeCurrent(hDC, NULL);
        wglDeleteContext(hRC);
        ReleaseDC(hWnd, hDC);
        PostQuitMessage(0);
        break;
    case WM_KEYDOWN:
        keys[wParam] = TRUE;
        break;
 
    case WM_KEYUP:
        keys[wParam] = FALSE;
        break;
    case WM_SIZE:
        ReSizeGLScene(LOWORD(lParam), HIWORD(lParam));
        break;
    default:
        return (DefWindowProc(hWnd, message, wParam, lParam));
    }
    return (0);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    MSG     msg;    // Структура сообщения Windows
    WNDCLASS    wc;   // Структура класса Windows для установки типа окна
    HWND        hWnd;   // Сохранение дескриптора окна
    wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wc.lpfnWndProc = (WNDPROC)WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = NULL;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = NULL;
    wc.lpszMenuName = NULL;
    wc.lpszClassName = "OpenGL WinClass";
    if (!RegisterClass(&wc))
    {
        MessageBox(0,
            "Failed To Register The WindowClass.",
            "Error", MB_OK | MB_ICONERROR);
        return FALSE;
    }
    hWnd = CreateWindow("OpenGL WinClass",
        "First OpenGL program", // Заголовок вверху окна
 
        WS_POPUP |
        WS_CLIPCHILDREN |
        WS_CLIPSIBLINGS,
        0, 0,           // Позиция окна на экране
        640, 480,       // Ширина и высота окна
        NULL,
        NULL,
        hInstance,
        NULL);
    if (!hWnd)
    {
        MessageBox(0, "Window Creation Error.", "Error", MB_OK | MB_ICONERROR);
        return FALSE;
    }
    if (!hWnd)
    {
        MessageBox(0, "Window Creation Error.", "Error", MB_OK | MB_ICONERROR);
        return FALSE;
    }
 
    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);
    SetFocus(hWnd);
    while (1)
    {       // Обработка всех сообщений
        while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
        {
            if (GetMessage(&msg, NULL, 0, 0))
            {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
            else
            {
                return TRUE;
            }
        }
 
        DrawGLScene();              // Нарисовать сцену
        SwapBuffers(hDC);       // Переключить буфер экрана
        if (keys[VK_ESCAPE]) SendMessage(hWnd, WM_CLOSE, 0, 0); // Если ESC - выйти
    }
}
Кликните здесь для просмотра всего текста
Список ошибок:
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 28
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 31
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 34
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 40
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 41
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 42
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 44
Severity Code Description Project File Line
Warning C4305 'argument': truncation from 'double' to 'GLfloat' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 46
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [34]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 87
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 87
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 87
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [26]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 94
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 94
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 94
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 102
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [35]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 103
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 103
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [21]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 109
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 109
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 109
Severity Code Description Project File Line
Error C2440 '=': cannot convert from 'const char [16]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 155
Severity Code Description Project File Line
Error (active) a value of type "const char *" cannot be assigned to an entity of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 155
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 159
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [36]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 160
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 160
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 163
Severity Code Description Project File Line
Error C2664 'HWND CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID)': cannot convert argument 2 from 'const char [16]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 174
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [23]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 177
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 177
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 177
Severity Code Description Project File Line
Error C2664 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': cannot convert argument 2 from 'const char [23]' to 'LPCWSTR' ConsoleApplication1 d:\project2\consoleapplication1\consoleapplication1\main.cpp 182
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 182
Severity Code Description Project File Line
Error (active) argument of type "const char *" is incompatible with parameter of type "LPCWSTR" ConsoleApplication1 d:\project2\ConsoleApplication1\ConsoleApplication1\Main.cpp 182

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2015, 19:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка компиляции С++, OpenGL (C++):

OpenGL ошибка при компиляции
Добрый вечер! Пользуюсь CodeBlocks. Есть вот такая вот программка, которая...

Ошибка при компиляции OpenGl Игры
Делаю игру по туториалу. Вот код игры: #include &lt;glut.h&gt; #include...

Подключил openGl вылетает ошибка при компиляции (фото)
Синтаксис подсвечивается, всё вроде бы ок, но при компиляции выдает это!

Ошибки компиляции при работе с OpenGL
Какую библиотеку нужно подключить и что нужно сделать, чтобы заработало: ...

Ошибка при компиляции. Где ошибка? (Работа с классом)
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined...

При компиляции ошибка. Ошибка c++ C2678
Ошибка c++ C2678 #include &lt;windows.h&gt; #include &lt;string&gt; #include &lt;iostream&gt;...

1
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
04.11.2015, 19:52 #2
Или отключите использование уникода:
Проект->Свойства->Свойства конфигурации->Общие->Набор знаков->Не задано

Или к каждой константной строке добавьте букву L
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2015, 19:52
Привет! Вот еще темы с решениями:

Ошибка компиляции
Здравствуйте!При компиляции программы появляется данная ошибка. Подскажите...

ошибка компиляции
1&gt;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL...

С++ Ошибка компиляции
тут проблема такая написал прогу, хочу в ней функции подключить и вот БАЦ и...

Ошибка компиляции
// KR_5.cpp: определяет точку входа для консольного приложения. // #include...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru