Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
1

Dev C++ ругается на GLvoid почему?

23.10.2016, 15:30. Просмотров 867. Ответов 42

Есть код:
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
/*
 *      This Code Was Created By Jeff Molofee 2000
 *      A HUGE Thanks To Fredric Echols For Cleaning Up
 *      And Optimizing This Code, Making It More Flexible!
 *      If You've Found This Code Useful, Please Let Me Know.
 *      Visit My Site At nehe.gamedev.net
 */
 
#include <windows.h>        
#include <gl\gl.h>          
#include <gl\glu.h>         
#include <gl\glaux.h>       
 
HDC         hDC=NULL;       
HGLRC       hRC=NULL;       
HWND        hWnd=NULL;      
HINSTANCE   hInstance;      
 
bool    keys[256];          
bool    active=TRUE;        
bool    fullscreen=TRUE;    
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);   
 
GLvoid ReSizeGLScene(GLsizei width, GLsizei height)     
{
    if (height==0)                                      
    {
        height=1;                                       
    }
 
    glViewport(0,0,width,height);                       
 
    glMatrixMode(GL_PROJECTION);                        
    glLoadIdentity();                                   
 
    // Calculate The Aspect Ratio Of The Window
    gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
 
    glMatrixMode(GL_MODELVIEW);                         
    glLoadIdentity();                                   
}
 
int InitGL(GLvoid)                                      
{
    glShadeModel(GL_SMOOTH);                            
    glClearColor(0.0f, 0.0f, 0.0f, 0.5f);               
    glClearDepth(1.0f);                                 
    glEnable(GL_DEPTH_TEST);                            
    glDepthFunc(GL_LEQUAL);                            
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);  
    return TRUE;                                     
}
 
int DrawGLScene(GLvoid)                                
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();                                   
    return TRUE;                                    
}
 
GLvoid KillGLWindow(GLvoid)                            
{
    if (fullscreen)                                     
    {
        ChangeDisplaySettings(NULL,0);                
        ShowCursor(TRUE);                              
    }
 
    if (hRC)                                           
    {
        if (!wglMakeCurrent(NULL,NULL))                
        {
            MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
        }
 
        if (!wglDeleteContext(hRC))                    
        {
            MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
        }
        hRC=NULL;                                      
    }
 
    if (hDC && !ReleaseDC(hWnd,hDC))                   
    {
        MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
        hDC=NULL;                                     
    }
 
    if (hWnd && !DestroyWindow(hWnd))                  
    {
        MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
        hWnd=NULL;                                     
    }
 
    if (!UnregisterClass("OpenGL",hInstance))         
    {
        MessageBox(NULL,"Could Not Unregister Class.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
        hInstance=NULL;                                
    }
}
 
/*  This Code Creates Our OpenGL Window.  Parameters Are:                   *
 *  title           - Title To Appear At The Top Of The Window              *
 *  width           - Width Of The GL Window Or Fullscreen Mode             *
 *  height          - Height Of The GL Window Or Fullscreen Mode            *
 *  bits            - Number Of Bits To Use For Color (8/16/24/32)          *
 *  fullscreenflag  - Use Fullscreen Mode (TRUE) Or Windowed Mode (FALSE)   */
 
BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
    GLuint      PixelFormat;            
    WNDCLASS    wc;                     
    DWORD       dwExStyle;              
    DWORD       dwStyle;                
    RECT        WindowRect;             
    WindowRect.left=(long)0;            
    WindowRect.right=(long)width;       
    WindowRect.top=(long)0;             // Set Top Value To 0
    WindowRect.bottom=(long)height;     // Set Bottom Value To Requested Height
 
    fullscreen=fullscreenflag;          // Set The Global Fullscreen Flag
 
    hInstance           = GetModuleHandle(NULL);                // Grab An Instance For Our Window
    wc.style            = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;   // Redraw On Size, And Own DC For Window.
    wc.lpfnWndProc      = (WNDPROC) WndProc;                    // WndProc Handles Messages
    wc.cbClsExtra       = 0;                                    // No Extra Window Data
    wc.cbWndExtra       = 0;                                    // No Extra Window Data
    wc.hInstance        = hInstance;                            // Set The Instance
    wc.hIcon            = LoadIcon(NULL, IDI_WINLOGO);          // Load The Default Icon
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);          // Load The Arrow Pointer
    wc.hbrBackground    = NULL;                                 // No Background Required For GL
    wc.lpszMenuName     = NULL;                                 // We Don't Want A Menu
    wc.lpszClassName    = "OpenGL";                             // Set The Class Name
 
    if (!RegisterClass(&wc))                                    // Attempt To Register The Window Class
    {
        MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
        return FALSE;                                           // Return FALSE
    }
    
    if (fullscreen)                                             // Attempt Fullscreen Mode?
    {
        DEVMODE dmScreenSettings;                               // Device Mode
        memset(&dmScreenSettings,0,sizeof(dmScreenSettings));   // Makes Sure Memory's Cleared
        dmScreenSettings.dmSize=sizeof(dmScreenSettings);       // Size Of The Devmode Structure
        dmScreenSettings.dmPelsWidth    = width;                // Selected Screen Width
        dmScreenSettings.dmPelsHeight   = height;               // Selected Screen Height
        dmScreenSettings.dmBitsPerPel   = bits;                 // Selected Bits Per Pixel
        dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
 
        // Try To Set Selected Mode And Get Results.  NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.
        if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
        {
            // If The Mode Fails, Offer Two Options.  Quit Or Use Windowed Mode.
            if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
            {
                fullscreen=FALSE;       
            }
            else
            {
                // Pop Up A Message Box Letting User Know The Program Is Closing.
                MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);
                return FALSE;                                   
            }
        }
    }
 
    if (fullscreen)                                             // Are We Still In Fullscreen Mode?
    {
        dwExStyle=WS_EX_APPWINDOW;                              // Window Extended Style
        dwStyle=WS_POPUP;                                       // Windows Style
        ShowCursor(FALSE);                                      // Hide Mouse Pointer
    }
    else
    {
        dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;           // Window Extended Style
        dwStyle=WS_OVERLAPPEDWINDOW;                            // Windows Style
    }
 
    AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle);     // Adjust Window To True Requested Size
 
    // Create The Window
    if (!(hWnd=CreateWindowEx(  dwExStyle,                          // Extended Style For The Window
                                "OpenGL",                           // Class Name
                                title,                              // Window Title
                                dwStyle |                           // Defined Window Style
                                WS_CLIPSIBLINGS |                   // Required Window Style
                                WS_CLIPCHILDREN,                    // Required Window Style
                                0, 0,                               // Window Position
                                WindowRect.right-WindowRect.left,   // Calculate Window Width
                                WindowRect.bottom-WindowRect.top,   // Calculate Window Height
                                NULL,                               // No Parent Window
                                NULL,                               // No Menu
                                hInstance,                          // Instance
                                NULL)))                             // Dont Pass Anything To WM_CREATE
    {
        KillGLWindow();                             // Reset The Display
        MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
        return FALSE;                               // Return FALSE
    }
 
    static  PIXELFORMATDESCRIPTOR pfd=              // pfd Tells Windows How We Want Things To Be
    {
        sizeof(PIXELFORMATDESCRIPTOR),              // Size Of This Pixel Format Descriptor
        1,                                          // Version Number
        PFD_DRAW_TO_WINDOW |                        // Format Must Support Window
        PFD_SUPPORT_OPENGL |                        // Format Must Support OpenGL
        PFD_DOUBLEBUFFER,                           // Must Support Double Buffering
        PFD_TYPE_RGBA,                              // Request An RGBA Format
        bits,                                       // Select Our Color Depth
        0, 0, 0, 0, 0, 0,                           // Color Bits Ignored
        0,                                          // No Alpha Buffer
        0,                                          // Shift Bit Ignored
        0,                                          // No Accumulation Buffer
        0, 0, 0, 0,                                 // Accumulation Bits Ignored
        16,                                         // 16Bit Z-Buffer (Depth Buffer)  
        0,                                          // No Stencil Buffer
        0,                                          // No Auxiliary Buffer
        PFD_MAIN_PLANE,                             // Main Drawing Layer
        0,                                          // Reserved
        0, 0, 0                                     // Layer Masks Ignored
    };
    
    if (!(hDC=GetDC(hWnd)))                         // Did We Get A Device Context?
    {
        KillGLWindow();                             // Reset The Display
        MessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
        return FALSE;                               // Return FALSE
    }
Когда пытаюсь его скомпилировать начинает ругаться на GLvoid, что я делаю не так?

P.S Код не мой взят с другого сайта, мне просто его нужно скомпилировать.
P.S.S Код рабочий( правильный) тут я половину кода удалил потому что 15000 строк максимум ...
0
Миниатюры
Dev C++ ругается на GLvoid почему?  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2016, 15:30
Ответы с готовыми решениями:

Ругается dev c ++
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;string&gt; #include &lt;conio.h&gt; ...

Dev C++: ругается антивирус
Всем привет!У меня проблема во время компиляции.Когда я компилирую в Dev С++...

Dev-C++, при компилляции ругается фаервол Comodo
Версия фаервола последняя. Изначально ругался на все процессы (вылезало окно с...

Почему ругается на else?
Народ, подскажите пожалуйста, почему компилятор ругается на функцию &quot;else&quot;?...

Почему, С++ ругается на контруктор?
Почему у меня С++, ругается на контруктор вектора - vec3(const vec3 v) ??? ...

42
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 16:28 2
Компилятору прописал, где инклуды OpenGL искать?
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 16:37  [ТС] 3
а как? Я искал тут на форуме что то по поводу OpenGL, нашёл dll и т.д...всё сделал как в инструкции и нечего не всё равно работает(
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 16:41 4
Цитата Сообщение от leonix12 Посмотреть сообщение
всё сделал как в инструкции
В какой инструкции?
Цитата Сообщение от leonix12 Посмотреть сообщение
а как?
DevC++ какая?
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 16:44  [ТС] 5
DevC++ 5.4.2, а инструкция Как работать с библиотекой OpenGL в Dev c++? самая первая.
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 16:50 6
Цитата Сообщение от leonix12 Посмотреть сообщение
а инструкция Как работать с библиотекой OpenGL в Dev c++? самая первая.
В папку include, DevC++, какие файлы OpenGL закинул?
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 16:53  [ТС] 7
glut.h , как и в инструкции.
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 16:57 8
Цитата Сообщение от leonix12 Посмотреть сообщение
glut.h
Значит он так должен бвть подключен:
C++
1
#include <gl.h>
С другими .h - аналогично, и тогда они должны тоже быть в папке include DevC++.
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 17:01  [ТС] 9
Теперь в другом ошибка(
0
Миниатюры
Dev C++ ругается на GLvoid почему?  
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 17:05 10
Скрин содержимого папки include DevC++ покажи. И учти, что имеется ввиду, папка include компилятора DevC++. Компилятор там, по умолчанию, MinGW.
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 17:07  [ТС] 11
Вот.
0
Миниатюры
Dev C++ ругается на GLvoid почему?  
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 17:09  [ТС] 12
Может я не правильно скинул dll'ки в system? Просто у меня в system только одна папка, а в system32 все dll, мб туда надо кидать было?
0
Миниатюры
Dev C++ ругается на GLvoid почему?  
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 17:12 13
Цитата Сообщение от leonix12 Посмотреть сообщение
Вот.
И где там gl.h?

Добавлено через 40 секунд
Цитата Сообщение от leonix12 Посмотреть сообщение
Может я не правильно скинул dll'ки в system?
До dll дело не доходит, забудь о них на время.
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 17:39  [ТС] 14
Я из архива перекидал все файлы как написано в инструкции в теме которую я скидывал,но не работает не чего.
Объясню всю ситуацию, мне надо сделать 1 задание с этого сайта http://nehe.gamedev.net/tutorial/cre...w_win32/13001/ т.е мне нужно скачать код на Dev C++ т.к на нём я делаю и скомпилировать что бы всё запустилось, но ошибки появляются которые я уже написал. Вот что сделать что бы ошибок не стало?
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 17:48 15
У меня gl.h здесь: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl

Добавлено через 5 минут
Цитата Сообщение от leonix12 Посмотреть сообщение
Вот что сделать что бы ошибок не стало?
Пути правильно прописать, чтобы компилятор мог найти нужные инклуды.
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 17:51  [ТС] 16
У меня нету даже \Microsoft SDKs.
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 17:57 17
Цитата Сообщение от leonix12 Посмотреть сообщение
DevC++ 5.4.2
Сервис - Параметры компилятора - Каталоги - Включаемые файлы С++, прописывай там пути к папке, где находятся gl.h, glu.h, glaux.h.

Добавлено через 50 секунд
Цитата Сообщение от leonix12 Посмотреть сообщение
У меня нету даже \Microsoft SDKs.
Это у меня. У тебя ОС какая?

Добавлено через 2 минуты
У тебя что-то, для меня, мало понятное. Когда ты так прописал:
Цитата Сообщение от leonix12 Посмотреть сообщение
#include <gl\gl.h> #include <gl\glu.h> #include <gl\glaux.h>
, то компилятор не писал, что не может найти эти файлы. И где же он их видел?
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 18:03  [ТС] 18
Добавил, но всё ровно ошибка как и в 1 посту.

Добавлено через 5 минут
Без понятия, до этого не чего не копал в системных папках.
0
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
23.10.2016, 18:06 19
Цитата Сообщение от leonix12 Посмотреть сообщение
Добавил
Что добавил?

Добавлено через 1 минуту
И мой тебе совет: выяснять такие вопросы на специализированном форуме: http://www.cyberforum.ru/opengl/
Там люди занимаются непосредственно OpenGL, поэтому и больше понимают в таких вопросах.
0
leonix12
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 125
23.10.2016, 18:08  [ТС] 20
Добавил все инклуды куда надо и пути прописал, ОС Win10. Но всё ровно эта ошибка...

Добавлено через 21 секунду
Хорошо
0
23.10.2016, 18:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2016, 18:08

почему компилятор не ругается?
Почему компилятор не ругается, когда я исп. неинициализированную переменную и...

Почему ругается компилятор
#include &lt;iostream&gt; using namespace std; int main() { int a;...

Почему компилятор ругается?
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; using namespace std;...


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

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

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