Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
1

По логу ошибок определить, что произошло в проекте и нарушило его работоспособность

26.06.2012, 23:46. Просмотров 883. Ответов 6
Метки нет (Все метки)


Вот лог. Может кто-то сразу скажет в чём дело.
Код
1>------ Построение начато: проект: Little_War, Конфигурация: Debug Win32 ------
1>Построение начато 26.06.2012 22:43:04.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Little_War.unsuccessfulbuild".
1>ClCompile:
1>  WindClass.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\main.h(8): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Wind"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\main.h(8): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\main.h(8): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(80): error C2228: выражение слева от ".GetDisplParam" должно представлять класс, структуру или объединение
1>          тип: int
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(132): error C2228: выражение слева от ".GetWnd" должно представлять класс, структуру или объединение
1>          тип: int
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(155): error C2228: выражение слева от ".GethWnd" должно представлять класс, структуру или объединение
1>          тип: int
1>  GameButtons.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>  main.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\main.cpp(14): error C2228: выражение слева от ".x" должно представлять класс, структуру или объединение
1>  Создание кода...
1>  Компиляция...
1>  WndProcs.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:03.10
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Вложения
Тип файла: rar Little_War.rar (126.0 Кб, 13 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2012, 23:46
Ответы с готовыми решениями:

Как приложению определить, что произошло переключение?
Доброе время суток! Подскажите пожалуйста! В моей программе есть участок работы с курсором. Дело в...

Определить условную вероятность события В при условии, что событие А произошло
Опыт состоит в последовательном бросании двух монет. Рассматриваются события: А – выпадение герба...

Определить вероятность того, что потопление корабля произошло в результате попадания двух торпед
Три торпедных катера атакуют авианосец. Каждый катер выпускает по одной торпеде. Вероятность...

При экспорте данных в pdf формате пишет: Убедитесь что объект существует и его имя не содержит ошибок?
Как исправить при экспорте данных в pdf формате пишет: Убедитесь что объект существует и его имя не...

6
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
27.06.2012, 00:53  [ТС] 2
Так, я связывание не правильно сделал, исправил, но ошибка осталась.
Новый лог и проект.

Код
1>------ Построение начато: проект: Little_War, Конфигурация: Debug Win32 ------
1>Построение начато 26.06.2012 23:51:50.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Little_War.unsuccessfulbuild".
1>ClCompile:
1>  WindClass.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(94): error C2039: NewGame: не является членом "MAINMENU"
1>          c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(37): см. объявление "MAINMENU"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(97): error C2065: Options: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(100): error C2065: Scores: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(103): error C2065: Exit: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(110): error C2541: delete: нельзя удалять объекты, не являющиеся указателями
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(111): error C2065: Options: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(111): error C2541: delete: нельзя удалять объекты, не являющиеся указателями
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(112): error C2065: Scores: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(112): error C2541: delete: нельзя удалять объекты, не являющиеся указателями
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(113): error C2065: Exit: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(113): error C2541: delete: нельзя удалять объекты, не являющиеся указателями
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(123): error C2227: выражение слева от "->DrawButton" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(124): error C2065: Options: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(124): error C2227: выражение слева от "->DrawButton" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(125): error C2065: Scores: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(125): error C2227: выражение слева от "->DrawButton" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(126): error C2065: Exit: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(126): error C2227: выражение слева от "->DrawButton" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(154): error C2227: выражение слева от "->ChekState" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(155): error C2065: Options: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(155): error C2227: выражение слева от "->ChekState" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(156): error C2065: Scores: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(156): error C2227: выражение слева от "->ChekState" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(157): error C2065: Exit: необъявленный идентификатор
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.cpp(157): error C2227: выражение слева от "->ChekState" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>          тип: 'unknown-type'
1>  GameButtons.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>  main.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(46): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(47): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(48): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\windclass.h(49): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.36
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Вложения
Тип файла: rar Little_War.rar (126.0 Кб, 7 просмотров)
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
27.06.2012, 00:56 3
1) Неправильно используется extern. Он используется для того, чтобы сообщить компилятору, что переменная уже объявлена в другом модуле и создавать новую не надо. Вы же Wind нигде не объявили.
2) Содержащий MENUBUTTON заголовочный файл не подключен в windclass.h, соответственно, он не знает, что такое MENUBUTTON.
0) Модифицировать в .cpp файлах переменные, созданные в .h-файлах — опасная практика, код запутывается. В идеале, .h-файл должен представлять только типы, функции и константы (хотя, не всегда, cout/cin/cerr являются вполне себе живыми объектами). Но самому лучше так не делать.
1
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
27.06.2012, 10:32  [ТС] 4
1 Как это ни-где не объявил? В main.cpp.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
    WINDCLASS Wind(L"Little War!",hInstance,
        nCmdShow,WndProc,NULL,
        CS_VREDRAW|CS_HREDRAW,WS_POPUP);
 
    MAINMENU MainMenu();
 
    MSG Msg;
    ZeroMemory(&Msg,sizeof(Msg));
    while(GetMessage(&Msg,NULL,0,0))    //Обрабатываем если есть сообщение
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
 
    return (int) Msg.wParam;
}
2 Здесь может быть. Я скорее всего тупанул. Но мне как-то казалось что, создаются .h файлы, эти .h инклюдятся в один общий .h, а он во все .cpp файлы. Но видимо всё нет так. Исправлюсь.

0 А где ещё их модифицировать? В книге по ООП было, и не только, написано, что структуру класса описываете в .h файле, а реализацию в .cpp файл пихаете.
Или я под модификацией что-то не то понимаю? Модифицировать - значит изменять значения переменных, выполнять над ними действия?

В идеале? А как тогда классы членами обзаводить? Как параметры хранить?

Добавлено через 1 час 14 минут
На счёт второго пункта. Я пересмотрел чужие проекты, и там делалось так как я и пытался. Проблема была в последовательности подключений .h файлов в main.h. Теперь лог такой.

Код
1>------ Построение начато: проект: Little_War, Конфигурация: Debug Win32 ------
1>Построение начато 27.06.2012 9:29:31.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Little_War.unsuccessfulbuild".
1>ClCompile:
1>  WindClass.cpp
1>  GameButtons.cpp
1>  main.cpp
1>c:\users\администратор\documents\visual studio 2010\projects\little_war\little_war\main.cpp(14): warning C4930: MAINMENU MainMenu(void): функция с прототипом не вызвана (предполагалось определение переменной?)
1>  Создание кода...
1>ManifestResourceCompile:
1>  Для всех выходных данных обновления не требуется.
1>main.obj : error LNK2001: неразрешенный внешний символ ""class WINDCLASS Wind" (?Wind@@3VWINDCLASS@@A)"
1>WindClass.obj : error LNK2001: неразрешенный внешний символ ""class WINDCLASS Wind" (?Wind@@3VWINDCLASS@@A)"
1>C:\Users\Администратор\Documents\Visual Studio 2010\Projects\Little_War\Debug\Little_War.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.50
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Не знаю как исправить. Не нахожу ошибки. Понимаю почему может возникать, но не нахожу.
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
27.06.2012, 11:21 5
1) Про область видимости почитайте. Объявленное внутри функции извне недоступно. Соответственно, с Wind, объявленным в main, вы не можете работать в других файлах.
А еще, компилятор C++ очень тупой, и если что-то было объявлено после использования, он это объявление не найдет; надо объявлять все нужное и подключать все нужные заголовочные файлы до использования.
2) Не так. В .cpp файл инклудятся только его собственный .h-файл, а также все .h-файлы, нужные для написания кода реализации. В рабочие .cpp файлы, опять же, добавляется то, что будет в нем использоваться. от повторных включений защищает #pragma once.
0) Имеется в виду глобально. Т.е., создавать переменные внутри методов/функций и возвращать их можно, .h-файл, в общем случае, не должен экспортировать в глобальную область никаких переменных. Членами обзаводить и параметры хранить в функциях. Например,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// test.h
#pragma once
 
#include <string>
 
struct bicycle
{
  std::string a;
  bicycle(const char* str) 
  {
      a = str;
  }
}
C++
1
2
3
4
5
6
7
8
// main.cpp
#include "test.h"
 
int main()
{
    bicycle a( "TEST"), b("DRIVE");
    std::cout << a.a << b.a;
}
По поводу оставшейся ошибки — уберите пустые скобки в 14 строке main.cpp.
0
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
27.06.2012, 20:06  [ТС] 6
0)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
RECT WINDCLASS::GetDispParam()
{
    GetClientRect(hWnd,&(this->Rect));
    return Rect;
}
 
HWND WINDCLASS::GethWnd()const
{
    return hWnd;
}
bool MENUBUTTON::ChekState(POINT *Point)
{
    if(Point->x>Box.left && Point->x<Box.right)
    {
        if(Point->y>Box.top && Point->y<Box.bottom)
        {
            State = TRUE;
            return State;
        }
    }
    State = FALSE;
    return State;
}
То есть такие методы использовать не желательно?

1) Я класс переделал и объявил его глобально. Так лучше будет или есть способы лучше и безопаснее? Может объявить его как static? Знаю для чего он, но могу не знать всех преимуществ.

2)
Так, давайте уточним. Я предлагаю такой способ. Уже не раз пользовался и всё работало, и у других видел.

(первое вложение)

А вы

(второе)


P.S. Попробовал второй способ. Не компилит. Видимо вы не это имели ввиду. Уточните пожалуйста.
0
Миниатюры
По логу ошибок определить, что произошло в проекте и нарушило его работоспособность   По логу ошибок определить, что произошло в проекте и нарушило его работоспособность  
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
27.06.2012, 22:24 7
0) Почему, как раз такие и надо. Не надо делать WINDCLASS Wind в main.h, я об этом.
Код, конечно, грязноватый, да и возвращение значений через аргументы уродливо. В других языках для этого есть нормальные кортежи, но C туповат, таковых не имеет и приходится выкручиваться возвращением через аргументы. Просто, если не планируете быть only-C++, старайтесь особо не привыкать к такой практике.
1) Вообще, в хороших, годных программах нужно стараться глобально ничего не объявлять. У глобальных объектов есть предназначение, но оно очень узкое и специфичное.
Вот за отрисовку окон в WinAPI ничего не скажу — в чистом виде с ним дел не имел, но судя по тому, что тот же Qt не делает никаких глобальных окон-объектов, это можно преодолеть.
2) Я имел в виду почти это. Единственный момент — если в .h файле используется конструкция из другого .h файла, этот файл в нем должен быть подключен тоже. А если что-то используется только в реализации, то подключен дополнительный .h файл должен быть в .cpp.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2012, 22:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Куча ошибок при первом проекте Hello world!
Я понимаю, что это может показаться бредом, но я у меня глаз начинает дергаться уже. На всех сайтах...

В новом чистом проекте 5 ошибок без текста
Установил я самую последнюю версию unity и мне уже не впервой выдает 5 неизвестных ошибок в чистом...

Что произошло?
Доброй ночи! Я уже устанавливал стандартную свзяку apache-php-mysql вручную под винду, даже пару...

Что-то произошло с Wi-Fi
Всем доброго времени суток! Недавно на моем роутере снялся пароль, как это произошло я не знаю и...

С роутером что-то произошло
У меня ZyXEL Keenetic Giga 2. 4 месяца работал нормально, а сегодня произошла какае-то хрень....

Что то произошло с ноутбуком
ноутбук lenovo g505s, утром включил его и увидел что он перестал видеть батарею, упала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.