подключение openGL в Visual Studio 7.1

horseman

не знаю, куда прописать openGL-ные бибилиотеки (glu32.lib и т.д.) в проект, чтобы линковался. Подскажите, плз!

lord2476

в Link и пропиши

horseman

так а где именно в линк?
project->properties->linker
а дальше куда?

anton7805

project->properties->linker->additional library directories

laki

#pragma comment(lib, "имя библиотеки")

horseman

всем спасибо!
вроде все либы, которые нужно было подключить, подключила (opengl32.lib glaux.lib glu32.lib). Но выдается ошибка

hartriView.obj : error LNK2019: unresolved external symbol "private: int __thiscall
ChartriView::SetWindowPixelFormat(struct HDC__ *)" (?SetWindowPC@AA@@Z)
referenced in function "public: int __thiscall ChartriView::OnCreate(struct tagCREATESTRUCTA *)"
(?C@QAEHPAUtagCRE@@Z)


может, подскажете, что еще нужно подключить?

anton7805

project->properties->linker->additional library directories

сюда dll прописываюцца ,а
в коде программы
#pragma comment(lib, "имя библиотеки")

psm-home

Дело не в либах. В тексте сообщения об ошибке всё написано. У тебя в функции

intChartriView::OnCreate( LPCREATESTRUCT lpCreateStruct )

вызывается функция

int ChartriView::SetWindowPixelFormat(HDC hDC)

. Она объявлена в h файле, но её реализации, что-то типа


int ChartriView::SetWindowPixelFormat(HDC hDC)
{
int m_GLPixelIndex;
PIXELFORMATDESCRIPTOR pfd;
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW |
PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cRedBits = 8;
pfd.cRedShift = 16;
pfd.cGreenBits = 8;
pfd.cGreenShift = 8;
pfd.cBlueBits = 8;
pfd.cBlueShift = 0;
pfd.cAlphaBits = 0;
pfd.cAlphaShift = 0;
pfd.cAccumBits = 64;
pfd.cAccumRedBits = 16;
pfd.cAccumGreenBits = 16;
pfd.cAccumBlueBits = 16;
pfd.cAccumAlphaBits = 0;
pfd.cDepthBits = 32;
pfd.cStencilBits = 8;
pfd.cAuxBuffers = 0;
pfd.iLayerType = PFD_MAIN_PLANE;
pfd.bReserved = 0;
pfd.dwLayerMask = 0;
pfd.dwVisibleMask = 0;
pfd.dwDamageMask = 0;
m_GLPixelIndex = ChoosePixelFormat( hDC, &pfd);
if(m_GLPixelIndex==0) // Let's choose a default index.
{
m_GLPixelIndex = 1;
if(DescribePixelFormat(hDC,m_GLPixelIndex,sizeof(PIXELFORMATDESCRIPTOR&pfd)==0)
return 0;
}
if (SetPixelFormat( hDC, m_GLPixelIndex, &pfd)==FALSE)
return 0;
return 1;
}


похоже нету в cpp файле. Проверь там. И есть такое чувство, что ты пользуешься сырцами из книжки Игоря Тарасова по основам OGL и делаешь это невнимательно. А может я не прав.

horseman

да, вы правы.
Эта ф-ция была объявлена, но почему-то нигде не описана.
Про книгу Тарасова слышу в первый раз, так что код не оттуда.
Большое спасибо
Оставить комментарий
Имя или ник:
Комментарий: