Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OpenGL и MS Visual Studio 2008

36K
06 октября 2010 года
Geser
32 / / 03.03.2009
Доброго времени суток.
Вопрос не новый, но просьба не посылать к Гуглу и Яндексу.
Сам вопрос:
ОС - Windows7,
IDE - MS Visual Studio 2008 Professional Edition,
API - OpenGL.
Не компилируется проект.
Ошибка: c:\program files\microsoft sdks\windows\v6.0a\include\gl\glaux.h(42) : fatal error C1014: too many include files : depth = 1024. т.е. много включенных файлов.
Главный файл(*.cpp):
#include "stdafx.h"

#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")

#include <windows.h>
#include "3DMODEL.h"

Создавал отдельный хедер(3DMODEL.h):
#pragma once
#ifndef _3dModel_h
#define _3dModel_h
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#endif

Один хер, та же ошибка.
Хоть систему сноси, ставь XP и Visual C++ 6.0 (все работает)

P.S. Скачал DevIL-SDK-x64-1.7.8, но увы.
262
06 октября 2010 года
Iktomy
1.2K / / 11.10.2004
попробуйте прописать этот хедер в stdafx.h
36K
07 октября 2010 года
Geser
32 / / 03.03.2009
не катит. сразу ошибки с неизвестным идентификаторами, поробовал различные варианты.
Просьба еще советы, и объяснить в чем причина.

P.S. ОС - Windows7 (Тип системы: 32). Вдруг поможет.
6.0K
07 октября 2010 года
artyom-tyanutov
107 / / 10.07.2006
Выкинь glaux, заюзай glut.
262
07 октября 2010 года
Iktomy
1.2K / / 11.10.2004
Цитата: artyom-tyanutov
Выкинь glaux, заюзай glut.



что-то в этом есть.
ибо я тут пошарился по форумам у Майкрософта и нашел:

Цитата:
Glaux.lib has been deprecated and no longer ships in the Windows SDK.



и

Цитата:
1) install glut 3.6 or newer as directed.
2) Open Visual studio 2008 and create a new project
3) choose c++ - empty solution
4) import all the files from your previous OpenGL project
5) delete all headers i.e.

#include <gl\glu.h>
#include <gl\gluax.h>
and any other GL headers

6) then replace with #include <gl\glut.h>
7) recompile.



или можно извратнуться, поставить PlatformSDK для Win2003 и подключать оттуда

36K
08 октября 2010 года
Geser
32 / / 03.03.2009
Скачал с opengl.org glut 3.7 с дирекории include\gl скопировал все файлы (из знакомых только glut.h. такие как fgl.h,fglu.h, fglut, glsmap.h и tube.h вижу впервые и еще не разбирался для чего они).
Заменил в коде glaux.h на glut.h. Ошибка C1014 исчезла, но появились ошибки с низвестными инденфикаторами.
d:\projects\3dmodel\3dmodel\3dmodel.cpp(43) : error C3861: 'auxSwapBuffers': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(53) : error C3861: '_getch': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(59) : error C3861: 'auxInitPosition': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C2065: 'AUX_RGB' : undeclared identifier
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C2065: 'AUX_DEPTH' : undeclared identifier
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C2065: 'AUX_DOUBLE' : undeclared identifier
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C3861: 'auxInitDisplayMode': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(61) : error C3861: 'auxInitWindow': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(62) : error C3861: 'auxIdleFunc': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(63) : error C3861: 'auxReshapeFunc': identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(83) : error C3861: 'auxMainLoop': identifier not found
Что подрубать?
И почему не срабатывал код
#pragma once
#ifndef _3dModel_h
#define _3dModel_h
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#endif
Он же должен был проверять чтоб открывался только один экземпляр, если не ошибаюсь.

С этим понятно это из conio.h.
d:\projects\3dmodel\3dmodel\3dmodel.cpp(53) : error C3861: '_getch': identifier not found
А остальные тогда откуда брать если glaux.h не катит?
6.0K
08 октября 2010 года
artyom-tyanutov
107 / / 10.07.2006
Замени все вызовы glaux на соответствующие вызовы glut.
36K
08 октября 2010 года
Geser
32 / / 03.03.2009
Где? В файлах gl.h, glu.h нет таких вызовов.

А в моих файлах glaux.h вызывался только в одном месте, как мне посоветовали, я заменил сразу его на glut.h. И появились ошибки с неизвестными идентификаторами.
Cамо слово glaux осталось только в:
#pragma comment(lib, "glaux.lib")
менял на:
#pragma comment(lib, "glut32.lib")
те же ошибки

P.S.
по этому пути глянул не было там файла glaux.lib
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
скопировал ошибки те же, залил туда же glut32.lib, та жа бодяга
Объясните где я не прав.
262
08 октября 2010 года
Iktomy
1.2K / / 11.10.2004
Ых-хы-хы.

Кароче, функции, котрые вызывались из glaux, теперь оттуда не вызываются, ибо нет таково файла, не подключено он к проекту. Так же?

поэтому имена функций, начинающиеся с "aux" какбэ же не летают. GLAUX и GLUT абсолютно разные библиотеки, со схожим функционалом.

Найдите пример с GLUT (а их валом!) и все поймете
36K
08 октября 2010 года
Geser
32 / / 03.03.2009
Цитата: Iktomy
Ых-хы-хы.


Согласен.

полазил в самом glut.h нашел функции заменил.
//void CALLBACK resize(int width,int height)
void resize(int width,int height)

//void CALLBACK display(void)
void display(void)

int _tmain(int argc, _TCHAR* argv[])
{
float pos[4] = {3,3,3,1};
float dir[3] = {-1,-1,-1};

GLfloat mat_specular[] = {1,1,1,1};

glutInit(&argc, argv);
glutInitWindowPosition( 50, 10);
glutInitWindowSize(350,350);
//auxtInitPosition( 50, 10, 400, 400);
glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
//auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
glutCreateWindow( "Model" );
//auxInitWindow( "Model" );
glutIdleFunc(display);
//auxIdleFunc(display);
glutReshapeFunc(resize);
//auxReshapeFunc(resize);

glEnable(GL_DEPTH_TEST);

glEnable(GL_COLOR_MATERIAL);

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);

glLightfv(GL_LIGHT0, GL_POSITION, pos);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);

glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialf(GL_FRONT, GL_SHININESS, 128.0);


glutMainLoop();
//auxMainLoop(display);

//return 0;
}

Но другая ошибка
d:\projects\3dmodel\3dmodel\3dmodel.cpp(61) : error C2664: 'glutInit' : cannot convert parameter 2 from '_TCHAR *[]' to 'char **'
как лучше изменить glutInit.

Пока сам ищу, но может народ быстрее подскажет.

6.0K
08 октября 2010 года
artyom-tyanutov
107 / / 10.07.2006
 
Код:
glutInit(&argc, reinterpret_cast<char**>(argv));
36K
10 октября 2010 года
Geser
32 / / 03.03.2009
Цитата: artyom-tyanutov
 
Код:
glutInit(&argc, reinterpret_cast<char**>(argv));


Спасибо помогло.

Но продолжаем дальше.
LINK : fatal error LNK1000: Internal error during IncrBuildImage
выдавала при компиляци. Исправили скачали KB948127 у Microsoft.

Но затем:
Когда Release компилируется:
------ Build started: Project: 3DMODEL, Configuration: Release Win32 ------
Compiling...
3DMODEL.cpp
Build log was saved at "file://d:\projects\3DMODEL\3DMODEL\Release\BuildLog.htm"
3DMODEL - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Делаем Debugging
Затем открывается консольное окошко(ну как обычно, если надо текст выводит), затем окошко где дожна быть графика, но быстро открывется и также быстро закрывается.
Вот логи:
'3DMODEL.exe': Loaded 'D:\projects\3DMODEL\Release\3DMODEL.exe', Symbols loaded.
'3DMODEL.exe': Loaded 'C:\Windows\System32\ntdll.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\kernel32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\KernelBase.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\opengl32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\msvcrt.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\advapi32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\sechost.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\rpcrt4.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\gdi32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\user32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\lpk.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\usp10.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\glu32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\ddraw.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\dciman32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\setupapi.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\cfgmgr32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\oleaut32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\ole32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\devobj.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\dwmapi.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\glut32.dll', Binary was not built with debug information.
'3DMODEL.exe': Loaded 'C:\Windows\System32\winmm.dll'
'3DMODEL.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4926_none_508ed732bcbc0e5a\msvcr90.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\imm32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\msctf.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\uxtheme.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\cryptbase.dll'
The program '[16584] 3DMODEL.exe: Native' has exited with code 1 (0x1).

При Debug:
------ Build started: Project: 3DMODEL, Configuration: Debug Win32 ------
Compiling...
Skipping... (no relevant changes detected)
3DMODEL.cpp
Build log was saved at "file://d:\projects\3DMODEL\3DMODEL\Debug\BuildLog.htm"
3DMODEL - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Делаем Debugging
точно также быстро открылось закрылось.
Вот логи:
'3DMODEL.exe': Loaded 'D:\projects\3DMODEL\Debug\3DMODEL.exe', Symbols loaded.
'3DMODEL.exe': Loaded 'C:\Windows\System32\ntdll.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\kernel32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\KernelBase.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\opengl32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\msvcrt.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\advapi32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\sechost.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\rpcrt4.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\gdi32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\user32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\lpk.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\usp10.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\glu32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\ddraw.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\dciman32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\setupapi.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\cfgmgr32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\oleaut32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\ole32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\devobj.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\dwmapi.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\glut32.dll', Binary was not built with debug information.
'3DMODEL.exe': Loaded 'C:\Windows\System32\winmm.dll'
'3DMODEL.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2\msvcr90d.dll', Symbols loaded.
'3DMODEL.exe': Loaded 'C:\Windows\System32\imm32.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\msctf.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\uxtheme.dll'
'3DMODEL.exe': Loaded 'C:\Windows\System32\cryptbase.dll'
The program '[16344] 3DMODEL.exe: Native' has exited with code 1 (0x1).

Что делать?

P.S. Если везде не переходили на 64, Microsoft не обещал бы что перестанет обслуживать XP, и что скоро выйдет Windows8(128). Сидел бы на XP и обучался бы спокойно. Но все таки охота работать с новыми технологиями, на новых инструментах.
Вообще думаю параллельно изучать *nux (но это к теме не относится)

7
10 октября 2010 года
@pixo $oft
3.4K / / 20.09.2006
Вы где-то видите ошибки?Ошибок компиляции нет
Пошаговая отладка вам в руки,узнаете,почему программа так быстро отрабатывает
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог