![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| CyberDemon |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 11.10.2003 Где: Нижний Новгород Репутация: нет Всего: нет |
Модераторы, заранее прошу не переносить в другой раздел, т.к. хоть и используется MFC, речь не про него.
Значит есть два класса. CSendSMSDlg:
И еще есть CAbonentDlg:
При компиляции вылазит кучу ошибок. Такое чувство, что класс CAbonentDlg не знает про структуру ABONENT. Все ошибки ругаются именно на эту структуру. Вот они:
И так везде, где в классе CAbonentDlg пытаешься объявить структуру. Наверняка какая-нить мелкая кракозябра, но ни как не могу найти.... |
||||||
|
|||||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
у тебя слово ABONENT в определении структуры как-то коряво написано - наверное а русскими буквами
Ctrl+F даже по этой странице находит только 1 "ABONENT" |
|||
|
||||
| CyberDemon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 11.10.2003 Где: Нижний Новгород Репутация: нет Всего: нет |
Проверил. Прошелся поиском по проекту и по странице. У меня все нашлось. Да и в определении врятли ошибка есть. Еще кучу классов юзают эту структуру и там ошибок нет. На всякий случай инклуду из работающего класса закопипастил в CAbonentDlg и на всякий случай имя структуры тоже. Нет эфекта. :(
Это сообщение отредактировал(а) CyberDemon - 23.8.2008, 17:16 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
в исходнике наблюдается взаимное включение хидеров, т.е в sendsmsdlg.h - #include "abonentdlg.h", а в abonentdlg.h - #include "sendsmsdlg.h" Это сообщение отредактировал(а) mes - 23.8.2008, 17:56 |
|||
|
||||
| CyberDemon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 11.10.2003 Где: Нижний Новгород Репутация: нет Всего: нет |
правильно. А как еще может CAbonentDlg узнать о CSendSMSDlg, и соответственно обо всех структурах, объявленный в этом хедере? Разве что присать отдельный хедер, исключительно для определения, и включать его во все остальные хедеры. Но это очень долго и неморно. А в CSendSMSDlg включен CAbonentDlg потому, что именно от туда и вызывается CAbonentDlg::DoModal(). |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
перенесите строчку #include "sendsmsdlg.h" из abonentdlg.h в abonentdlg.cpp
и тоже самое с реализацией связанной с CSendSMSDlg.. Это сообщение отредактировал(а) mes - 23.8.2008, 18:32 |
|||
|
||||
| CyberDemon |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 11.10.2003 Где: Нижний Новгород Репутация: нет Всего: нет |
Спасибо за идею. Все заработало. Переделал так:
defines.h
SendSMSDlg.h
AbonentDlg.h
Но все же вопрос остался. Почему такое было? И еще, я уже давно не программил, только недавно сел и стал впоминать. Может кто-нить сможет навести позитивную критику по коду, который я вверху привел? |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
почитайте на тему forward declaration и с чем ее едят в Cpp. ) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |