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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Frazunk
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 2
#1

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

04.11.2015, 19:43. Просмотров 305. Ответов 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 ошибка при компиляции - C++
Добрый вечер! Пользуюсь CodeBlocks. Есть вот такая вот программка, которая должна нарисовать точку. int main(int argc, char...

Ошибка при компиляции OpenGl Игры - C++
Делаю игру по туториалу. Вот код игры: #include &lt;glut.h&gt; #include &lt;stdlib.h&gt; using namespace std; class snake{ ...

Ошибки компиляции при работе с OpenGL - C++
Какую библиотеку нужно подключить и что нужно сделать, чтобы заработало: 1&gt;------ Построение начато: проект: 1, Конфигурация: Debug...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

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

ошибка компиляции - C++
Задача Даны действительная матрица размера действительные числа , натуральные числа р, q . Образовать новую матрицу размера ...

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

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

Ошибка компиляции - C++
Исходник: // ConsoleApplication4.cpp: определяет точку входа для консольного приложения. // #include &lt;windows.h&gt; #include...

Ошибка компиляции - C++
Написал код на тему шаблоны, но появились проблемы с созданием перегруженного оператора, так же не могу создать динамический массив...

Ошибка компиляции - C++
Здравствуйте. Попробовал данный код скомпилировать в dev c++ 4.9.9.2. Выдает ошибки что не хватает &quot;;&quot; перед auto, const, for. Код из...

Ошибка компиляции - C++
Дана задача с использованием friend-ов. Не могу понять почему программа не видит (Square s(5, 4)) Помогите пожалуйста чайнику) ...


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

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

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