C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenGL include  (Прочитано 1471 раз)
DimaKor
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 22


OpenGL include
« : 16 Июль 2015, 15:00:51 »

Почему в главной форме

#include
#include

отлично работает. А когда подсоединяешь к проекту новый юнит и делаешь отдельный класс (даже безо всякого упоминания OpenGL), то на те же самые строчки получаешь миллион ошибок о multiple declaration?

Форма .h:

Код:
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include
#include
#include
#include

//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

класс .h:

Код:
//---------------------------------------------------------------------------

#include
#include

class GLdraw
{
  public:

void __fastcall SetProjection(float width, float height);

  protected:

float w, h;    // ширина, высота

};
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Re: OpenGL include
« Ответ #1 : 16 Июль 2015, 15:55:48 »

Значит новый юнит цепляется много раз. А юнит формы взят в "оборону"

#ifndef Unit1H
#define Unit1H

#ednif
Записан
DimaKor
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 22


Re: OpenGL include
« Ответ #2 : 16 Июль 2015, 15:58:00 »

Я нашел все таки решение, тут сложнее. Почему то перед include  OpenGL хедеров необходимо включить windows.h

#include
#include
#include

так работает.

Видимо в h файле главной формы он включен неявно
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


« Ответ #3 : 18 Июль 2015, 00:56:14 »

Да, это единственное решение для сторонних библиотек (не только GLUT / OpenGL) - подключать windows.h до всех остальных заголовков.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.034 секунд. Запросов: 21.