Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2013, 17:35   #1
Marker21
Пользователь
 
Аватар для Marker21
 
Регистрация: 26.07.2013
Сообщений: 20
По умолчанию Компилятор не видит структуру.

Имеется проект:


В заголовочном файле Texture.h имеется структура:
Код:
typedef struct TextureImage
{
    GLubyte *imageData;     // Данные текстуры
    GLuint  bpp;            // Байт на пиксел
    GLuint width,height;        // Высота и ширина
    GLuint texID;           // ID текстуры
}TextureImage;
При создании в заголовочном файле main.h переменной типа TextureImage компилятор выдает ошибку :
c:\documents and settings\admin\мои документы\visual studio 2010\projects\opengl\opengl\main.h( 70): error C2065: TextureImage: необъявленный идентификатор

Как решить данную проблему? Заранее спасибо.
Изображения
Тип файла: jpg 11.jpg (16.5 Кб, 170 просмотров)
Marker21 вне форума Ответить с цитированием
Старый 01.08.2013, 18:03   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

А в main.h есть #include "Texture.h"
waleri вне форума Ответить с цитированием
Старый 01.08.2013, 18:11   #3
Marker21
Пользователь
 
Аватар для Marker21
 
Регистрация: 26.07.2013
Сообщений: 20
По умолчанию

Цитата:
А в main.h есть #include "Texture.h"
Прошу прощения забыл написать: оба файла подключены друг к другу

Texture.h
Код:
#include "main.h"
main.h
Код:
#include "Texture.h"
Marker21 вне форума Ответить с цитированием
Старый 01.08.2013, 18:25   #4
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

Попробуй удалить #include "main.h" из texture.h
denrubun вне форума Ответить с цитированием
Старый 01.08.2013, 18:34   #5
Marker21
Пользователь
 
Аватар для Marker21
 
Регистрация: 26.07.2013
Сообщений: 20
По умолчанию

Цитата:
Попробуй удалить #include "main.h" из texture.h
К сожалению не помогает(уже пробовал).
Marker21 вне форума Ответить с цитированием
Старый 01.08.2013, 19:42   #6
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

По всей видимости - не известно, что такое TextureImage... может быть дело во внутренней линковке?
Igor95 вне форума Ответить с цитированием
Старый 01.08.2013, 19:50   #7
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

если после #include "texture.h" он все равно не понимает что такой TextureImage, возникает мысль, что фактически файл не включается (из-за #ifndef ... #define ... или еще чего-то).
Моя версия такая: сначала в textures.h включается main.h. в #define'ах отмечено, что textures.h включен
после этого, когда в main.h включается texture.h, он уже не включается и компилятор его не призает
denrubun вне форума Ответить с цитированием
Старый 01.08.2013, 19:58   #8
Marker21
Пользователь
 
Аватар для Marker21
 
Регистрация: 26.07.2013
Сообщений: 20
По умолчанию

Проблему решил банальным переносом структуры TextureImage в main.h. Не уверен ,что данный подход является рациональным, однако все работает. Всем большое спасибо за помощь.
Marker21 вне форума Ответить с цитированием
Старый 01.08.2013, 20:09   #9
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

Цитата:
банальным переносом
Цитата:
однако все работает
вполне рационально по-моему, хотя я тоже не сторонник таких решений
denrubun вне форума Ответить с цитированием
Старый 01.08.2013, 20:10   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Инклудить файлы друг из друга реально либо генерит ошибки, либо инклудиться только один раз. В вашем случае явно надо разбить main.h на подфайлы.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилятор GCC не видит заголовочные файлы библиотек QT Armatus Qt и кроссплатформенное программирование С/С++ 12 04.12.2012 16:06
Компилятор не видит объявление класса Nolane Общие вопросы C/C++ 1 29.09.2012 21:24
Компилятор не видит конструктор ashton Помощь студентам 1 14.09.2010 00:08
компилятор не видит заголовочный файл demcy Общие вопросы C/C++ 5 24.08.2010 16:18
компилятор не видит изменения в коде DiGris Общие вопросы C/C++ 4 09.04.2010 12:39