!

OpenGL. Visual Studio 2010 C++.

, 3D (3d max) OpenGL. , . , ( , , ), , , output-a Visual Studio : "unresolved external symbol __imp____glewGenerateMipmap".

'glew32.lib' 'freeglut.lib', include- 'glew.h' . , .. , '#define GLEW_STATIC' . - .

Texture.h
Code:
#ifdef TEXTURE_EXPORTS
#define TEXTURE_API __declspec(dllexport)
#else
#define TEXTURE_API __declspec(dllimport)
#endif

#pragma once

#include <gl/glew.h>
#include <gl/freeglut.h>

#include <Windows.h>
#include <fstream>

extern TEXTURE_API int numTexture;
extern TEXTURE_API unsigned int LoadBMP(char *fileName);
Texture.cpp
Code:
#include "stdafx.h"
#include "Texture.h"

unsigned int LoadBMP(char *fileName)
{
	FILE *file;
	unsigned char *texture;
	unsigned int textureID;

	BITMAPFILEHEADER fileHeader;
	BITMAPINFOHEADER infoHeader;
	RGBTRIPLE rgb;

	if(fileName == '\0')
	{
		return (-1);
	}
	if(fopen(fileName, "rb") == NULL)
	{
		MessageBox(NULL, L"Texture not found", L"Spacesim", MB_OK | MB_ICONERROR);
		return (-1);
	}

	file = fopen(fileName, "rb");
	fread(&fileHeader, sizeof(fileHeader), 1, file);

	fseek(file, sizeof(fileHeader), SEEK_SET);
	fread(&infoHeader, sizeof(infoHeader), 1, file);

	texture = (unsigned char*)malloc(infoHeader.biWidth * infoHeader.biHeight * 4);
	memset(texture, 0, infoHeader.biWidth * infoHeader.biHeight * 4);

	int j = 0;
	for(int i = 0; i < infoHeader.biWidth * infoHeader.biHeight; i++)
	{
		fread(&rgb, sizeof(rgb), 1, file);

		texture[j+0] = rgb.rgbtRed;
		texture[j+1] = rgb.rgbtGreen;
		texture[j+2] = rgb.rgbtBlue;
		texture[j+3] = 255;
		j+=4;
	}

	fclose(file);

	GLuint error = glGetError();

	glGenTextures(1, &textureID);
	glBindTexture(GL_TEXTURE_2D, textureID);

	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);

	error = glGetError();

	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 4);

	glGenerateMipmap(GL_TEXTURE_2D); //,     

	error = glGetError();

	free(texture);
	return (textureID);
}