Здравствуйте! Не могли ли вы помочь решить вот такую задачку мне:
в VC++ Не компилируется проект с использованием GLUT..
Я начал Учить ОПЕНГЛ.. купил книгу, но там рассказано про какие-то мэйк файлы, для компиляции.
Я подключил GLUT.h ... Нот там были какие-то GLUT.lib и GLUT.DLL
Для чего они??
Вот такие ошибки выдает программа.
1>------ Build started: Project: OPENGL Init, Configuration: Debug Win32 ------
1>Linking...
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>C:\программирование\OpenGL\Инитка ОпенГЛ с++\Запускаем! ОпенГЛ\Debug\OPENGL Init.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\программирование\OpenGL\Инитка ОпенГЛ с++\Запускаем! ОпенГЛ\Debug\BuildLog.htm"
1>OPENGL Init - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Код:
//
// Печатает инфу про опенГЛ карту и драйвер
// показывает все доступные экстенции.
#ifdef _WIN32
#include <windows.h>
#endif
#include <GL/gl.h>
//#include "GLfiles\glut.h"
//#include "GLfiles\glext.h"
#include <GL/glut.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
//Declaration
void InitGL();
void GlDisplay();
void Reshape( int w, int h );
void On_Key_Press( unsigned char key, int x, int y );
void PrintExtList( const char* extention );
bool IsExtentionSupported( const char* ext );
//Begin
int main( int argc, char* argv[])
{
//Initialize GLUT
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
glutInitWindowSize( 400, 400 );
int win = glutCreateWindow( "OpenGL Window Example" );
//Register handlers
glutDisplayFunc( GlDisplay );
glutReshapeFunc( Reshape );
glutKeyboardFunc( On_Key_Press );
InitGL();
const char* Vendor = ( const char* )glGetString(GL_VENDOR );
const char* Renderer = ( const char* )glGetString(GL_RENDERER );
const char* Version = ( const char* )glGetString(GL_VERSION );
const char* Extention = ( const char* )glGetString(GL_EXTENSIONS );
printf( "Vendor: %s\nRenderer: %s\nVersion: %s\n", Vendor, Renderer, Version );
if ( argc < 2 )
PrintExtList( Extention );
else
for ( int i = 1; i < argc; i++ )
if ( IsExtentionSupported( argv[i] ) )
printf( "%-40s - supported\n", argv[i] );
else
printf("%-40s - NOT supported\n", argv[i] );
return 0;
}
void InitGL()
{
glClearColor( 0.0, 0.0, 0.0, 1.0 );
glEnable( GL_DEPTH_TEST );
}
void GlDisplay()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSwapBuffers();
}
void Reshape( int w, int h )
{
glViewport( 0, 0, (GLsizei)w, (GLsizei)h );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
}
void On_Key_Press( unsigned char key, int x, int y )
{
if ( key == 27 || key == 'q' || key == 'Q' )
exit(0);
}
void PrintExtList( const char* extention )
{
char Name[1024];
printf( "Supported extensions:\n" );
unsigned int j;
for( int i = 0, j = 0; extention[i] != '\0'; i++ )
if ( isspace( extention[i] ) )
Name[j++] = extention[i];
else
{
Name[j] = '\0';
printf( "\t%s\n", Name );
j = 0;
}
if ( j > 0 )
{
Name[j] = '\0';
printf( "\t%s\n", Name );
}
}
bool IsExtentionSupported( const char* ext )
{
const char * extensions = (const char *)glGetString ( GL_EXTENSIONS );
const char * start = extensions;
const char * ptr;
while ( ( ptr = strstr ( start, ext ) ) != NULL )
{
// we've found, ensure name is exactly ext
const char * end = ptr + strlen ( ext );
if ( isspace ( *end ) || *end == '\0' )
return true;
start = end;
}
return false;
}
Если нужна более подробная информация обращайтесь