Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > [openGL][VS]ругается на gl.h в других файлах кода


Автор: ss 11.6.2016, 20:58
Здравствуйте. 
Пытаюсь использовать opengl в visual studio 2013 update 4.
делаю так :
 - Создаю пустой проект win32.
 - Добавляю новый элемент Visual C++ Файл С++ (.cpp). Называю main.cpp.
 - Вставляю код http://pmg.org.ru/nehe/nehe01.htm.

ВСЕ РАБОТАЕТ !!! компилируется, запускается, создается окно.

добавляю новый класс через дизайнер / шаблон  (пункт добавить/класс), указываю имя например MyClass.

MyClass будет использоваться в main и будет выполнять отрисовку квадрата средствами openGL. 
Когда я начинаю подключать в файл с классом MyClass модуль #include<gl/GL.h> то вылазят ошибки в модуле GL.h.
В main.cpp подключен GL.h и все нормально.

Т.Е. как только начинаю подключать в MyClass.h модуль GL.h возникают проблемы:

Ошибка    1    error C2144: синтаксическая ошибка: перед "void" требуется ";"    c:\program files (x86)\windows kits\8.1\include\um\gl\gl.h    1157    1    
Ошибка    2    error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию    c:\program files (x86)\windows kits\8.1\include\um\gl\gl.h    1157    1    
Ошибка    3    error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "glAccum"    c:\program files (x86)\windows kits\8.1\include\um\gl\gl.h    1157    1    
Ошибка    4    error C2182: APIENTRY: недопустимое использование типа "void"    c:\program files (x86)\windows kits\8.1\include\um\gl\gl.h    1157    1    


Помогите разобраться в чем проблема.


Автор: vol4ek 13.6.2016, 10:31
код MyClass.h и MyClass.cpp в студию.

Автор: ss 13.6.2016, 13:07
там даже дело не в коде MyClass а в том что в других файлах компилятор начинает ругаться на gl.h.
Убираю строчку #include<gl\GL.h> и все работает. MyClass просто новый пустой класс.

Код

#pragma once

#include<gl\GL.h>

class MyClass
{
  MyClass(){}
  ~MyClass(){}
};

Автор: tzirechnoy 14.6.2016, 20:49
В моё время файлы заголовков для C в C++ надо было подключать через extern "C" { ...

Автор: Amp 15.6.2016, 12:16
Нужен windows.h перед включением gl.h

Автор: ss 15.6.2016, 13:04
Amp, спасибо, помогло включение windows.h

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)