|
Модераторы: Daevaorn |
|
Belous |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Есть переменные, которые определены глобально и видны из всех функций. Все работает.
При попытке создать таким же образом структуру возникает ошибка, что она не видна error C2501: 'data' : missing storage-class or type specifiers А если добавляю определение в этот модуль, то получаеся переменная не глобольной структуры, а локальной структуры, с таким же именем см рисунок DATA глобальная и DATA локальная.
Как создать массив глобальных переменных типа структура? Это сообщение отредактировал(а) Belous - 6.2.2017, 20:16 Присоединённый файл ( Кол-во скачиваний: 5 ) pic.GIF 8,48 Kb |
||||||
|
|||||||
ss |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 131 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
в Data.h надо подключить Project.h. Файл в котором описана структура не подключен. Структуру нужно вынести в другой файл иначе будет кольцевое подключение.
|
|||
|
||||
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Вот именно. Поэтому и не подключен. А иначе никак ? А то и так этих файлов очень много получается, и это только начало программы... Спасибо, попробую. Это сообщение отредактировал(а) Belous - 6.2.2017, 21:41 |
|||
|
||||
ss |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 131 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
в Data.h опиши структуру, заведи массив а в других файлах (Project.h) подключай этот Data.h и определяй ссылку extern DATA data[10];
|
|||
|
||||
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
В общем смысл я понял.
У меня было в Project.h описаны все глобальные переменные в Project.cpp - WinMain() и WndProc() В остальных файлах-модулях, по смыслу File.h + File.cpp - работа с файлами, В Data.h + Data.cpp - работа с данными, инициализация, проверки, undo, redo и т.д. Естественно все так или иначе вызывается с WndProc() Так просто перенести переменные из Project.h в Data.h не получится, поскольку функции модуля Data.cpp вызываются из Project.cpp. и все равно получается error C2011: 'DATA' : 'struct' type redefinition немного спасает #pragma once но получил Project.obj : error LNK2005: "struct DATA * e::data" (?data@e@@3PAUDATA@@A) already defined in Data.obj ... Наверное без дополнительного файла под структуру не обойтись. |
|||
|
||||
xvr |
|
||||||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
У вас в принципе неправильная структура файлов. Должно быть так:
|
||||||||
|
|||||||||
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Спасибо
|
|||
|
||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |