Форум программистов, компьютерный форум CyberForum.ru

директива extern - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 107, средняя оценка - 4.96
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
14.03.2010, 22:51     директива extern #1
Никак н могу понять как решить проблму с директивой extern. Я подключил к проекту файл libext.h и попытался скомпилировать программу. И компилятор почти на каждую строку пишет по 3 ошибки. Например строка
C++
1
2
                                    // WGL_ARB_render_texture
extern  PFNWGLBINDTEXIMAGEARBPROC               wglBindTexImageARB;
ошибки
Error 1 error C2146: syntax error : missing ';' before identifier 'wglBindTexImageARB' e:\кубик\fbo\fbo\libext.h 93 fbo
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int e:\кубик\fbo\fbo\libext.h 93 fbo
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int e:\кубик\fbo\fbo\libext.h 93 fbo
Заголовочный файл скачивал с какого-то сайта вместе с примером. Должно работать. Сможте объяснить в чем причина таких ошибок?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2010, 22:51     директива extern
Посмотрите здесь:

C++ Нахождение _export в теле extern
Проблема с extern-переменными C++
Не работает extern для vector C++
C++ ( extern char ) переопределение;
Не работает глобальный идентификатор extern C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
14.03.2010, 22:55     директива extern #2
Скорее всего в том, что в том месте, где ты пишешь extern ещё не определён тип PFNWGLBINDTEXIMAGEARBPROC. Посмотри препроцессорную выдачу.

В языке Си тип можно было опускать и писать что-то типа "extern a;" и тип по умолчанию считался int. В Си++ такое запретили. "Error 2" И "Error 3" смахивают на то, что PFNWGLBINDTEXIMAGEARBPROC распозналось как имя переменной (потому что типа такого нет), что и навело эти ошибки
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
14.03.2010, 22:57  [ТС]     директива extern #3
Цитата Сообщение от Evg Посмотреть сообщение
Посмотри препроцессорную выдачу.
Как?
И еще, а нельзя как-то дописать там везде тип int. Эти все типы по 4 байта (указатели) ну пусть оно их как int инициализирует, а там посмотрим)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
14.03.2010, 23:08     директива extern #4
Цитата Сообщение от galileopro Посмотреть сообщение
Как?
Если gcc, то дополнительно подать опцию -E, если borland, то на имени файла ПКМ - "preprocess". На остальных я не знаю как

Цитата Сообщение от galileopro Посмотреть сообщение
И еще, а нельзя как-то дописать там везде тип int. Эти все типы по 4 байта (указатели) ну пусть оно их как int инициализирует, а там посмотрим)
"typedef PFNWGLBINDTEXIMAGEARBPROC int*;". Правда если это указатель на структуру, то это мало чем поможет. Вот так вот видеть только одну строку исходника и стри строки выдачи компилятора - тут сложно сказать что-то более определённое. Может нужно банально какой-то include подключить, который вместе с библиотекой идёт?
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
14.03.2010, 23:19  [ТС]     директива extern #5
Не знаю. Там странный какой-то заголовочный файл. Там кроме extern почти ничего и нету.
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
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
//
// Header file to libExt
//
// Author: Alex V. Boreskoff <steps3d@gmail.com>, <steps3d@narod.ru>
//
 
#ifndef __LIB_EXT__
#define __LIB_EXT__
 
#include    <windows.h>
#pragma warning (disable:4996)
 
#include    <GL/gl.h>
#include    <GL/glu.h>
#include    "glext.h"
#include    "wglext.h"
 
bool    isExtensionSupported ( const char * ext );
void    assertExtensionsSupported ( const char * extList );
void    initExtensions       ();
void    printfInfo           ();                // print info about card, driver, version & etc
 
const char * getGeneralExtensions  ();          // get list of platform-independant (GL) extensions
const char * getPlatformExtensions ();          // get list of extensions for current platform (WGL or GLX)
 
#ifdef  _WIN32
extern  PFNGLACTIVETEXTUREARBPROC               glActiveTextureARB;
extern  PFNGLCLIENTACTIVETEXTUREARBPROC         glClientActiveTextureARB;
extern  PFNGLMULTITEXCOORD1FARBPROC             glMultiTexCoord1f;
extern  PFNGLMULTITEXCOORD1FVARBPROC            glMultiTexCoord1fv;
extern  PFNGLMULTITEXCOORD2FARBPROC             glMultiTexCoord2f;
extern  PFNGLMULTITEXCOORD2FVARBPROC            glMultiTexCoord2fv;
extern  PFNGLMULTITEXCOORD3FARBPROC             glMultiTexCoord3f;
extern  PFNGLMULTITEXCOORD3FVARBPROC            glMultiTexCoord3fv;
extern  PFNGLMULTITEXCOORD4FARBPROC             glMultiTexCoord4f;
extern  PFNGLMULTITEXCOORD4FVARBPROC            glMultiTexCoord4fv;
 
    #define glBindAttribLocation        glBindAttribLocationARB
#else
    #define  glActiveTextureARB         glActiveTexture
    #define  glClientActiveTextureARB   glClientActiveTexture
#endif
                                        // fog coord function
extern  PFNGLFOGCOORDFEXTPROC                      glFogCoordf;
 
                                        // secondary color functions
extern  PFNGLSECONDARYCOLOR3FPROC               glSecondaryColor3f;
extern  PFNGLSECONDARYCOLOR3FVPROC              glSecondaryColor3fv;
extern  PFNGLSECONDARYCOLORPOINTERPROC          glSecondaryColorPointer;
 
                                    // register combiners functions
extern  PFNGLCOMBINERPARAMETERFVNVPROC          glCombinerParameterfvNV;
extern  PFNGLCOMBINERPARAMETERIVNVPROC          glCombinerParameterivNV;
extern  PFNGLCOMBINERPARAMETERFNVPROC           glCombinerParameterfNV;
extern  PFNGLCOMBINERPARAMETERINVPROC           glCombinerParameteriNV;
extern  PFNGLCOMBINERINPUTNVPROC                glCombinerInputNV;
extern  PFNGLCOMBINEROUTPUTNVPROC               glCombinerOutputNV;
extern  PFNGLFINALCOMBINERINPUTNVPROC           glFinalCombinerInputNV;
 
                                    // VBO functions
extern  PFNGLBINDBUFFERARBPROC                  glBindBufferARB;
extern  PFNGLDELETEBUFFERSARBPROC               glDeleteBuffersARB;
extern  PFNGLGENBUFFERSARBPROC                  glGenBuffersARB;
extern  PFNGLISBUFFERARBPROC                    glIsBufferARB;
extern  PFNGLBUFFERDATAARBPROC                  glBufferDataARB;
extern  PFNGLBUFFERSUBDATAARBPROC               glBufferSubDataARB;
extern  PFNGLGETBUFFERSUBDATAARBPROC            glGetBufferSubDataARB;
extern  PFNGLMAPBUFFERARBPROC                   glMapBufferARB;
extern  PFNGLUNMAPBUFFERARBPROC                 glUnmapBufferARB;
extern  PFNGLGETBUFFERPARAMETERIVARBPROC        glGetBufferParameterivARB;
extern  PFNGLGETBUFFERPOINTERVARBPROC           glGetBufferPointervARB;
 
#ifdef  _WIN32
extern  PFNWGLGETEXTENSIONSSTRINGARBPROC        wglGetExtensionsStringARB;
 
                                    // p-buffer functions
extern  PFNWGLCREATEPBUFFERARBPROC              wglCreatePbufferARB;
extern  PFNWGLGETPBUFFERDCARBPROC               wglGetPbufferDCARB;
extern  PFNWGLRELEASEPBUFFERDCARBPROC           wglReleasePbufferDCARB;
extern  PFNWGLDESTROYPBUFFERARBPROC             wglDestroyPbufferARB;
extern  PFNWGLQUERYPBUFFERARBPROC               wglQueryPbufferARB;
 
                                    // WGL_ARB_pixel_format
extern  PFNWGLCHOOSEPIXELFORMATARBPROC          wglChoosePixelFormatARB;
 
                                    // WGL_ARB_render_texture
extern  PFNWGLBINDTEXIMAGEARBPROC               wglBindTexImageARB;
extern  PFNWGLRELEASETEXIMAGEARBPROC            wglReleaseTexImageARB;
extern  PFNWGLSETPBUFFERATTRIBARBPROC           wglSetPbufferAttribARB;
 
                                    // WGL_EXT_swap_control
extern  PFNWGLSWAPINTERVALEXTPROC               wglSwapIntervalEXT;
extern  PFNWGLGETSWAPINTERVALEXTPROC            wglGetSwapIntervalEXT;
#else
                                    // GLX_SGIX_pbuffer
extern  PFNGLXCREATEGLXPBUFFERSGIXPROC          glXCreateGLXPbufferSGIX;
extern  PFNGLXDESTROYGLXPBUFFERSGIXPROC         glXDestroyGLXPbufferSGIX;
extern  PFNGLXQUERYGLXPBUFFERSGIXPROC           glXQueryGLXPbufferSGIX;
 
                                    // GLX_SGIX_fbconfig
extern  PFNGLXCHOOSEFBCONFIGSGIXPROC            glXChooseFBConfigSGIX;
extern  PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC   glXCreateContextWithConfigSGIX;
#endif
 
                                    // NV-occlusion query extension
extern  PFNGLGENOCCLUSIONQUERIESNVPROC          glGenOcclusionQueriesNV;
extern  PFNGLBEGINOCCLUSIONQUERYNVPROC          glBeginOcclusionQueryNV;
extern  PFNGLENDOCCLUSIONQUERYNVPROC            glEndOcclusionQueryNV;
extern  PFNGLGETOCCLUSIONQUERYIVNVPROC          glGetOcclusionQueryivNV;
 
                                    // ARB_vertex_program extension
extern  PFNGLGENPROGRAMSARBPROC                 glGenProgramsARB;
extern  PFNGLDELETEPROGRAMSARBPROC              glDeleteProgramsARB;
extern  PFNGLBINDPROGRAMARBPROC                 glBindProgramARB;
extern  PFNGLISPROGRAMARBPROC                   glIsProgramARB;
 
extern  PFNGLPROGRAMSTRINGARBPROC               glProgramStringARB;
extern  PFNGLGETPROGRAMIVARBPROC                glGetProgramivARB;
 
extern  PFNGLVERTEXATTRIB4FARBPROC              glVertexAttrib4fARB;
extern  PFNGLVERTEXATTRIB4FVARBPROC             glVertexAttrib4fvARB;
extern  PFNGLVERTEXATTRIB3FARBPROC              glVertexAttrib3fARB;
extern  PFNGLVERTEXATTRIB3FVARBPROC             glVertexAttrib3fvARB;
 
extern  PFNGLVERTEXATTRIBPOINTERARBPROC         glVertexAttribPointerARB;
extern  PFNGLENABLEVERTEXATTRIBARRAYARBPROC     glEnableVertexAttribArrayARB;
extern  PFNGLDISABLEVERTEXATTRIBARRAYARBPROC    glDisableVertexAttribArrayARB;
 
extern  PFNGLPROGRAMLOCALPARAMETER4FARBPROC     glProgramLocalParameter4fARB;
extern  PFNGLPROGRAMLOCALPARAMETER4FVARBPROC    glProgramLocalParameter4fvARB;
extern  PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC  glGetProgramLocalParameterfvARB;
 
extern  PFNGLPROGRAMENVPARAMETER4FARBPROC       glProgramEnvParameter4fARB;
extern  PFNGLPROGRAMENVPARAMETER4FVARBPROC      glProgramEnvParameter4fvARB;
extern  PFNGLGETPROGRAMENVPARAMETERFVARBPROC    glGetProgramEnvParameterfvARB;
 
                                    // EXT_texture3D
extern  PFNGLTEXIMAGE3DEXTPROC                  glTexImage3DEXT;
 
                                    // ARB_texture_compression
extern  PFNGLCOMPRESSEDTEXIMAGE3DARBPROC        glCompressedTexImage3DARB;
extern  PFNGLCOMPRESSEDTEXIMAGE2DARBPROC        glCompressedTexImage2DARB;
extern  PFNGLCOMPRESSEDTEXIMAGE1DARBPROC        glCompressedTexImage1DARB;
extern  PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC     glCompressedTexSubImage3DARB;
extern  PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC     glCompressedTexSubImage2DARB;
extern  PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC     glCompressedTexSubImage1DARB;
extern  PFNGLGETCOMPRESSEDTEXIMAGEARBPROC       glGetCompressedTexImageARB;
 
                                    // ARB_point_parameters
extern  PFNGLPOINTPARAMETERFARBPROC             glPointParameterfARB;
extern  PFNGLPOINTPARAMETERFVARBPROC            glPointParameterfvARB;
 
                                    // ARB_occlusion_query
extern  PFNGLGENQUERIESARBPROC                  glGenQueriesARB;
extern  PFNGLDELETEQUERIESARBPROC               glDeleteQueriesARB;
extern  PFNGLISQUERYARBPROC                     glIsQueryARB;
extern  PFNGLBEGINQUERYARBPROC                  glBeginQueryARB;
extern  PFNGLENDQUERYARBPROC                    glEndQueryARB;
extern  PFNGLGETQUERYIVARBPROC                  glGetQueryivARB;
extern  PFNGLGETQUERYOBJECTIVARBPROC            glGetQueryObjectivARB;
extern  PFNGLGETQUERYOBJECTUIVARBPROC           glGetQueryObjectuivARB;
 
                                    // GLSL-specific extensions
                                    // GL_ARB_shader_object
extern  PFNGLDELETEOBJECTARBPROC                glDeleteObjectARB;
extern  PFNGLGETHANDLEARBPROC                   glGetHandleARB;
extern  PFNGLDETACHOBJECTARBPROC                glDetachObjectARB;
extern  PFNGLCREATESHADEROBJECTARBPROC          glCreateShaderObjectARB;
extern  PFNGLSHADERSOURCEARBPROC                glShaderSourceARB;
extern  PFNGLCOMPILESHADERARBPROC               glCompileShaderARB;
extern  PFNGLCREATEPROGRAMOBJECTARBPROC         glCreateProgramObjectARB;
extern  PFNGLATTACHOBJECTARBPROC                glAttachObjectARB;
extern  PFNGLLINKPROGRAMARBPROC                 glLinkProgramARB;
extern  PFNGLUSEPROGRAMOBJECTARBPROC            glUseProgramObjectARB;
extern  PFNGLVALIDATEPROGRAMARBPROC             glValidateProgramARB;
extern  PFNGLUNIFORM1FARBPROC                   glUniform1fARB;
extern  PFNGLUNIFORM2FARBPROC                   glUniform2fARB;
extern  PFNGLUNIFORM3FARBPROC                   glUniform3fARB;
extern  PFNGLUNIFORM4FARBPROC                   glUniform4fARB;
extern  PFNGLUNIFORM1IARBPROC                   glUniform1iARB;
extern  PFNGLUNIFORM2IARBPROC                   glUniform2iARB;
extern  PFNGLUNIFORM3IARBPROC                   glUniform3iARB;
extern  PFNGLUNIFORM4IARBPROC                   glUniform4iARB;
extern  PFNGLUNIFORM1FVARBPROC                  glUniform1fvARB;
extern  PFNGLUNIFORM2FVARBPROC                  glUniform2fvARB;
extern  PFNGLUNIFORM3FVARBPROC                  glUniform3fvARB;
extern  PFNGLUNIFORM4FVARBPROC                  glUniform4fvARB;
extern  PFNGLUNIFORM1IVARBPROC                  glUniform1ivARB;
extern  PFNGLUNIFORM2IVARBPROC                  glUniform2ivARB;
extern  PFNGLUNIFORM3IVARBPROC                  glUniform3ivARB;
extern  PFNGLUNIFORM4IVARBPROC                  glUniform4ivARB;
extern  PFNGLUNIFORMMATRIX2FVARBPROC            glUniformMatrix2fvARB;
extern  PFNGLUNIFORMMATRIX3FVARBPROC            glUniformMatrix3fvARB;
extern  PFNGLUNIFORMMATRIX4FVARBPROC            glUniformMatrix4fvARB;
extern  PFNGLGETOBJECTPARAMETERFVARBPROC        glGetObjectParameterfvARB;
extern  PFNGLGETOBJECTPARAMETERIVARBPROC        glGetObjectParameterivARB;
extern  PFNGLGETINFOLOGARBPROC                  glGetInfoLogARB;
extern  PFNGLGETATTACHEDOBJECTSARBPROC          glGetAttachedObjectsARB;
extern  PFNGLGETUNIFORMLOCATIONARBPROC          glGetUniformLocationARB;
extern  PFNGLGETACTIVEUNIFORMARBPROC            glGetActiveUniformARB;
extern  PFNGLGETUNIFORMFVARBPROC                glGetUniformfvARB;
extern  PFNGLGETUNIFORMIVARBPROC                glGetUniformivARB;
extern  PFNGLGETSHADERSOURCEARBPROC             glGetShaderSourceARB;
 
                                        // GL_ARB_vertex_shader
extern  PFNGLBINDATTRIBLOCATIONARBPROC          glBindAttribLocationARB;
extern  PFNGLGETACTIVEATTRIBARBPROC             glGetActiveAttribARB;
extern  PFNGLGETATTRIBLOCATIONARBPROC           glGetAttribLocationARB;
extern  PFNGLGETVERTEXATTRIBFVARBPROC           glGetVertexAttribfvARB;
 
                                        // EXT_stencil_two_side
extern  PFNGLACTIVESTENCILFACEEXTPROC           glActiveStencilFaceEXT;
 
                                        // EXT_depth_bounds_test
extern  PFNGLDEPTHBOUNDSEXTPROC                 glDepthBoundsEXT;
 
                                        // EXT_framebuffer_object
extern  PFNGLISRENDERBUFFEREXTPROC                      glIsRenderbufferEXT;
extern  PFNGLBINDRENDERBUFFEREXTPROC                    glBindRenderbufferEXT;
extern  PFNGLDELETERENDERBUFFERSEXTPROC                 glDeleteRenderbuffersEXT;
extern  PFNGLGENRENDERBUFFERSEXTPROC                    glGenRenderbuffersEXT;
extern  PFNGLRENDERBUFFERSTORAGEEXTPROC                 glRenderbufferStorageEXT;
extern  PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC          glGetRenderbufferParameterivEXT;
extern  PFNGLISFRAMEBUFFEREXTPROC                       glIsFramebufferEXT;
extern  PFNGLBINDFRAMEBUFFEREXTPROC                     glBindFramebufferEXT;
extern  PFNGLDELETEFRAMEBUFFERSEXTPROC                  glDeleteFramebuffersEXT;
extern  PFNGLGENFRAMEBUFFERSEXTPROC                     glGenFramebuffersEXT;
extern  PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC              glCheckFramebufferStatusEXT;
extern  PFNGLFRAMEBUFFERTEXTURE1DEXTPROC                glFramebufferTexture1DEXT;
extern  PFNGLFRAMEBUFFERTEXTURE2DEXTPROC                glFramebufferTexture2DEXT;
extern  PFNGLFRAMEBUFFERTEXTURE3DEXTPROC                glFramebufferTexture3DEXT;
extern  PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC             glFramebufferRenderbufferEXT;
extern  PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
extern  PFNGLGENERATEMIPMAPEXTPROC                      glGenerateMipmapEXT;
 
 
#ifndef GL_VERSION_1_3                                      // ARB_transpose matrix
extern  PFNGLLOADTRANSPOSEMATRIXFPROC                   glLoadTransposeMatrixfARB;
extern  PFNGLLOADTRANSPOSEMATRIXDPROC                   glLoadTransposeMatrixdARB;
extern  PFNGLMULTTRANSPOSEMATRIXFPROC                   glMultTransposeMatrixfARB;
extern  PFNGLMULTTRANSPOSEMATRIXDPROC                   glMultTransposeMatrixdARB;
#endif
 
                                                            // ARB_color_buffer_float
extern  PFNGLCLAMPCOLORARBPROC                          glClampColorARB;
                                                            
#ifdef  _WIN32                                              // fresh Linux already has 2.0
                                                            // stenccl ops from OpenGL 2.0
extern  PFNGLSTENCILFUNCSEPARATEPROC            glStencilFuncSeparate;
extern  PFNGLSTENCILOPSEPARATEPROC              glStencilOpSeparate;
extern  PFNGLSTENCILMASKSEPARATEPROC            glStencilMaskSeparate;
 
                                                            // blend ops from OpenGL 2.0
extern  PFNGLBLENDEQUATIONPROC                  glBlendEquation;
extern  PFNGLBLENDEQUATIONSEPARATEPROC          glBlendEquationSeparate;
extern  PFNGLBLENDFUNCSEPARATEPROC              glBlendFuncSeparate;
extern  PFNGLBLENDCOLORPROC                     glBlendColor;
#endif
 
                                                            // draw buffers from OpenGL 2.0
extern  PFNGLDRAWBUFFERSPROC                    glDrawBuffers;
                                                            // ATI_draw_buffers
extern  PFNGLDRAWBUFFERSATIPROC                 glDrawBuffersATI;
 
                                                            // EXT_texture_integer
extern  PFNGLTEXPARAMETERIIVEXTPROC             glTexParameterIivEXT;
extern  PFNGLTEXPARAMETERIUIVEXTPROC            glTexParameterIuivEXT;
extern  PFNGLGETTEXPARAMETERIIVEXTPROC          glGetTexParameterIivEXT;
extern  PFNGLGETTEXPARAMETERIUIVEXTPROC         glGetTexParameterIuivEXT;
extern  PFNGLCLEARCOLORIIEXTPROC                glClearColorIiEXT;
extern  PFNGLCLEARCOLORIUIEXTPROC               glClearColorIuiEXT;
 
                                                            // EXT_draw_instanced
extern  PFNGLDRAWARRAYSINSTANCEDEXTPROC         glDrawArraysInstancedEXT;
extern  PFNGLDRAWELEMENTSINSTANCEDEXTPROC       glDrawElementsInstancedEXT;
 
 
                                                            // EXT_texture_buffer_object
extern  PFNGLTEXBUFFEREXTPROC                   glTexBufferEXT;
                                                            
                                                            // EXT_gpu_shader4
extern  PFNGLGETUNIFORMUIVEXTPROC               glGetUniformuivEXT;
extern  PFNGLBINDFRAGDATALOCATIONEXTPROC        glBindFragDataLocationEXT;
extern  PFNGLGETFRAGDATALOCATIONEXTPROC         glGetFragDataLocationEXT;
extern  PFNGLUNIFORM1UIEXTPROC                  glUniform1uiEXT;
extern  PFNGLUNIFORM2UIEXTPROC                  glUniform2uiEXT;
extern  PFNGLUNIFORM3UIEXTPROC                  glUniform3uiEXT;
extern  PFNGLUNIFORM4UIEXTPROC                  glUniform4uiEXT;
extern  PFNGLUNIFORM1UIVEXTPROC                 glUniform1uivEXT;
extern  PFNGLUNIFORM2UIVEXTPROC                 glUniform2uivEXT;
extern  PFNGLUNIFORM3UIVEXTPROC                 glUniform3uivEXT;
extern  PFNGLUNIFORM4UIVEXTPROC                 glUniform4uivEXT;
extern  PFNGLVERTEXATTRIBI1IEXTPROC             glVertexAttribI1iEXT;
extern  PFNGLVERTEXATTRIBI2IEXTPROC             glVertexAttribI2iEXT;
extern  PFNGLVERTEXATTRIBI3IEXTPROC             glVertexAttribI3iEXT;
extern  PFNGLVERTEXATTRIBI4IEXTPROC             glVertexAttribI4iEXT;
extern  PFNGLVERTEXATTRIBI1UIEXTPROC            glVertexAttribI1uiEXT;
extern  PFNGLVERTEXATTRIBI2UIEXTPROC            glVertexAttribI2uiEXT;
extern  PFNGLVERTEXATTRIBI3UIEXTPROC            glVertexAttribI3uiEXT;
extern  PFNGLVERTEXATTRIBI4UIEXTPROC            glVertexAttribI4uiEXT;
extern  PFNGLVERTEXATTRIBI1IVEXTPROC            glVertexAttribI1ivEXT;
extern  PFNGLVERTEXATTRIBI2IVEXTPROC            glVertexAttribI2ivEXT;
extern  PFNGLVERTEXATTRIBI3IVEXTPROC            glVertexAttribI3ivEXT;
extern  PFNGLVERTEXATTRIBI4IVEXTPROC            glVertexAttribI4ivEXT;
extern  PFNGLVERTEXATTRIBI1UIVEXTPROC           glVertexAttribI1uivEXT;
extern  PFNGLVERTEXATTRIBI2UIVEXTPROC           glVertexAttribI2uivEXT;
extern  PFNGLVERTEXATTRIBI3UIVEXTPROC           glVertexAttribI3uivEXT;
extern  PFNGLVERTEXATTRIBI4UIVEXTPROC           glVertexAttribI4uivEXT;
extern  PFNGLVERTEXATTRIBI4BVEXTPROC            glVertexAttribI4bvEXT;
extern  PFNGLVERTEXATTRIBI4SVEXTPROC            glVertexAttribI4svEXT;
extern  PFNGLVERTEXATTRIBI4UBVEXTPROC           glVertexAttribI4ubvEXT;
extern  PFNGLVERTEXATTRIBI4USVEXTPROC           glVertexAttribI4usvEXT;
extern  PFNGLVERTEXATTRIBIPOINTEREXTPROC        glVertexAttribIPointerEXT;
extern  PFNGLGETVERTEXATTRIBIIVEXTPROC          glGetVertexAttribIivEXT;
extern  PFNGLGETVERTEXATTRIBIUIVEXTPROC         glGetVertexAttribIuivEXT;
                                                            
                                                        // EXT_geometry_shader4
extern  PFNGLPROGRAMPARAMETERIEXTPROC           glProgramParameteriEXT;
extern  PFNGLFRAMEBUFFERTEXTUREEXTPROC          glFramebufferTextureEXT;
extern  PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC     glFramebufferTextureLayerEXT;
extern  PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC      glFramebufferTextureFaceEXT;
 
                                                        // EXT_bindable_uniform
extern  PFNGLUNIFORMBUFFEREXTPROC               glUniformBufferEXT;
extern  PFNGLGETUNIFORMBUFFERSIZEEXTPROC        glGetUniformBufferSizeEXT;
extern  PFNGLGETUNIFORMOFFSETEXTPROC            glGetUniformOffsetEXT;
 
                                                        // OpenGL 2.0 shader                                                        
extern  PFNGLCOMPILESHADERPROC                  glCompileShader;
extern  PFNGLCREATEPROGRAMPROC                  glCreateProgram;
extern  PFNGLCREATESHADERPROC                   glCreateShader;
extern  PFNGLDELETEPROGRAMPROC                  glDeleteProgram;
extern  PFNGLDELETESHADERPROC                   glDeleteShader;
extern  PFNGLDETACHSHADERPROC                   glDetachShader;
extern  PFNGLGETPROGRAMINFOLOGPROC              glGetProgramInfoLog;
extern  PFNGLGETSHADERINFOLOGPROC               glGetShaderInfoLog;
extern  PFNGLGETSHADERSOURCEPROC                glGetShaderSource;
extern  PFNGLLINKPROGRAMPROC                    glLinkProgram;
extern  PFNGLSHADERSOURCEPROC                   glShaderSource;
extern  PFNGLUSEPROGRAMPROC                     glUseProgram;
extern  PFNGLVALIDATEPROGRAMPROC                glValidateProgram;
extern  PFNGLGETPROGRAMIVPROC                   glGetProgramiv;
extern  PFNGLGETSHADERIVPROC                    glGetShaderiv;
extern  PFNGLATTACHSHADERPROC                   glAttachShader;
extern  PFNGLGETUNIFORMLOCATIONPROC             glGetUniformLocation;
extern  PFNGLGETATTRIBLOCATIONPROC              glGetAttribLocation;
 
extern  PFNGLUNIFORM4FVPROC                     glUniform4fv;
extern  PFNGLUNIFORM3FVPROC                     glUniform3fv;
extern  PFNGLUNIFORM2FVPROC                     glUniform2fv;
extern  PFNGLUNIFORM1FPROC                      glUniform1f;
extern  PFNGLUNIFORM1IPROC                      glUniform1i;
extern  PFNGLUNIFORMMATRIX2FVPROC               glUniformMatrix2fv;
extern  PFNGLUNIFORMMATRIX3FVPROC               glUniformMatrix3fv;
extern  PFNGLUNIFORMMATRIX4FVPROC               glUniformMatrix4fv;
extern  PFNGLGETUNIFORMFVPROC                   glGetUniformfv;
extern  PFNGLVERTEXATTRIB4FVPROC                glVertexAttrib4fv;
extern  PFNGLGETVERTEXATTRIBFVPROC              glGetVertexAttribfv;
 
                                    // OOpenGL 2 query support
extern  PFNGLGENQUERIESPROC                  glGenQueries;
extern  PFNGLDELETEQUERIESPROC               glDeleteQueries;
extern  PFNGLISQUERYPROC                     glIsQuery;
extern  PFNGLBEGINQUERYPROC                  glBeginQuery;
extern  PFNGLENDQUERYPROC                    glEndQuery;
extern  PFNGLGETQUERYIVPROC                  glGetQueryiv;
extern  PFNGLGETQUERYOBJECTIVPROC            glGetQueryObjectiv;
extern  PFNGLGETQUERYOBJECTUIVPROC           glGetQueryObjectuiv;
 
 
                                                        // NV_transform_feedback
extern  PFNGLBEGINTRANSFORMFEEDBACKNVPROC       glBeginTransformFeedbackNV;
extern  PFNGLENDTRANSFORMFEEDBACKNVPROC         glEndTransformFeedbackNV;
extern  PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC     glTransformFeedbackAttribsNV;
extern  PFNGLBINDBUFFERRANGENVPROC              glBindBufferRangeNV;
extern  PFNGLBINDBUFFEROFFSETNVPROC             glBindBufferOffsetNV;
extern  PFNGLBINDBUFFERBASENVPROC               glBindBufferBaseNV;
extern  PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC    glTransformFeedbackVaryingsNV;
extern  PFNGLACTIVEVARYINGNVPROC                glActiveVaryingNV;
extern  PFNGLGETVARYINGLOCATIONNVPROC           glGetVaryingLocationNV;
extern  PFNGLGETACTIVEVARYINGNVPROC             glGetActiveVaryingNV;
extern  PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC  glGetTransformFeedbackVaryingNV;
 
                                                        // NV_fence
extern  PFNGLDELETEFENCESNVPROC                 glDeleteFencesNV;
extern  PFNGLGENFENCESNVPROC                    glGenFencesNV;
extern  PFNGLISFENCENVPROC                      glIsFenceNV;
extern  PFNGLTESTFENCENVPROC                    glTestFenceNV;
extern  PFNGLGETFENCEIVNVPROC                   glGetFenceivNV;
extern  PFNGLFINISHFENCENVPROC                  glFinishFenceNV;
extern  PFNGLSETFENCENVPROC                     glSetFenceNV;
 
                                                        // NV__conditional_render
extern  PFNGLBEGINCONDITIONALRENDERNVPROC       glBeginConditionalRenderNV;
extern  PFNGLENDCONDITIONALRENDERNVPROC         glEndConditionalRenderNV;
 
#endif
Добавлено через 2 минуты
С библиотекой шли glext.h и wglext.h. Их я вроде подключил. Там еще был один файл, но он к этой программе вроде никак не относится, он уже из другого примера был.

Добавлено через 6 минут
Если поможет, заголовочный файл libExt.h мн нужен, чтобы зарабоотали исходники отсюда http://steps3d.narod.ru/tutorials/fr...-tutorial.html
Там в FrameBuffer.cpp вначале подключается
C++
1
2
3
#include    "FrameBuffer.h"
#include    "libExt.h"
#include    <stdlib.h>
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
14.03.2010, 23:29     директива extern #6
> Не знаю. Там странный какой-то заголовочный файл. Там кроме extern почти ничего и нету.
Большинство инклюд-файлов именно такие. Там идут только описание внешних функций, переменных и типов

Тот читерский тип стоит под макросом _WIN32. Взведи его через командную строку (для gcc опция -D_WIN32) либо перед тем, как проинклюдить этот файл воткни "#define _WIN32"

Добавлено через 1 минуту
Хотя более правильно разобраться, как в компиляторе принудительно этот макрос взводить. Для gcc во все запуски надо подавать указанную опцию, а для всяких виндузовых компиляторв - я не знаю
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
14.03.2010, 23:42  [ТС]     директива extern #7
этот заголовочный файл я нашел тут http://steps3d.narod.ru/tutorials/dr...-tutorial.html
Я из него видимо зря удалили несколько строк.. Каюсь. Вообщем скопировалеще раз оригинальный. ошибок стало в 2 раза больше (397 error буквально в каждой строке )
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
14.03.2010, 23:47     директива extern #8
Если вдруг чего, то мой диплом по телепатии куда-то затерялся
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
14.03.2010, 23:52  [ТС]     директива extern #9
Выкладываю полностью проект. Может это как-то поможет. fbo.rar
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
14.03.2010, 23:56  [ТС]     директива extern #10
Ошибки те же, только больше. Снова он на extern ругается((
snake32
 Аватар для snake32
1301 / 944 / 119
Регистрация: 26.02.2009
Сообщений: 3,475
Записей в блоге: 5
15.03.2010, 02:47     директива extern #11
Это он не на extern ругается, а на не прописаны типы:
PFNWGLBINDTEXIMAGEARBPROC
PFNWGLRELEASETEXIMAGEARBPROC
PFNWGLSETPBUFFERATTRIBARBPROC

Самый простой способ закоментите эти 3 строки. В FBO они вроде не используются...
Но лучше прописать эти типы щаз гляну как должны выглядеть эти ф-ии...

C++
1
2
3
BOOL wglBindTexImageARB ( HPBUFFER hBuffer, int buf );
BOOL wglReleaseTexImageARB ( HPBUFFER hBuffer, int buf );
BOOL wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
Следовательно типы должны выглядеть как-то так:
C++
1
2
3
typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) ( HPBUFFERARB hPbuffer, int buf );
typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) ( HPBUFFERARB hPbuffer, int buf );
typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) ( HPBUFFERARB hPbuffer, const int * piAttribList );
Допишите эти три строчки где нить в wglext.h... например после
/* added by Cass -- but this should already be in here! */
monstr3
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 3
19.11.2011, 16:52     директива extern #12
galileopro, как была решена проблема? У меня в точности такая же.

Не заметил ваше Спасибо предыдущему сообщению. Похоже так и была решена, сейчас попробую. Сорри за ап.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 15:24     директива extern
Еще ссылки по теме:

C++ что такое extern?
extern C++
C++ Использование extern с функциями

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

Или воспользуйтесь поиском по форуму:
ChokoBoko
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 4
21.05.2013, 15:24     директива extern #13
нету описания типов. Скорей всего не та версия библиотек OpenGl. У кого будет такая проблема- посмотрите все ли описаны типы в инклудах. Обновите библиотеки.
Yandex
Объявления
21.05.2013, 15:24     директива extern
Ответ Создать тему
Опции темы

Текущее время: 23:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru