Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: alsav22   (22.04.2012 в 23:38)
Благодарю! Терпения у меня хватит. Пока поэкспериментирую с *.moc файлами. Идея понятна.

Поэкспериментировал. Результат такой. Для данного кода обработка moc имеет смысл только для файла mainwindow.h (предполагаю, что из-за наличия в нём Q_OBJECT). Файлы main.moc и mainwindow.moc пустые получаются. Если делать #include "mainwindow.moc.h" в файл main.cpp или в mainwindow.cpp, или в оба, то при построении:
1>------ Построение начато: проект: Qt5, Конфигурация: Debug Win32 ------
1>  main.cpp(0): Note: No relevant classes found. No output generated.
1>  mainwindow.cpp(16): Note: No relevant classes found. No output generated.
1>  mainwindow.cpp
1>d:\my c++projects\qt5\mainwindow.h(5): error C2011: MainWindow: переопределение типа "class"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(40): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(48): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(52): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(61): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(62): error C2270: metaObject: модификаторы недопустимы для функций, не являющихся членами
1>d:\my c++projects\qt5\mainwindow.moc.h(63): error C2227: выражение слева от "->metaObject" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>d:\my c++projects\qt5\mainwindow.moc.h(63): error C2227: выражение слева от "->metaObject" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>d:\my c++projects\qt5\mainwindow.moc.h(66): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(70): error C2355: this: может указываться только в нестатических членах-функциях
1>d:\my c++projects\qt5\mainwindow.moc.h(71): error C2352: QMainWindow::qt_metacast: недопустимый вызов нестатической функции-члена
1>          c:\qt\4.8.1\src\gui\widgets\qmainwindow.h(65): см. объявление "QMainWindow::qt_metacast"
1>d:\my c++projects\qt5\mainwindow.moc.h(74): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(76): error C2352: QMainWindow::qt_metacall: недопустимый вызов нестатической функции-члена
1>          c:\qt\4.8.1\src\gui\widgets\qmainwindow.h(65): см. объявление "QMainWindow::qt_metacall"
1>  main.cpp
1>d:\my c++projects\qt5\mainwindow.h(5): error C2011: MainWindow: переопределение типа "class"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(40): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(48): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(52): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(61): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(62): error C2270: metaObject: модификаторы недопустимы для функций, не являющихся членами
1>d:\my c++projects\qt5\mainwindow.moc.h(63): error C2227: выражение слева от "->metaObject" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>d:\my c++projects\qt5\mainwindow.moc.h(63): error C2227: выражение слева от "->metaObject" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>d:\my c++projects\qt5\mainwindow.moc.h(66): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(70): error C2355: this: может указываться только в нестатических членах-функциях
1>d:\my c++projects\qt5\mainwindow.moc.h(71): error C2352: QMainWindow::qt_metacast: недопустимый вызов нестатической функции-члена
1>          c:\qt\4.8.1\src\gui\widgets\qmainwindow.h(65): см. объявление "QMainWindow::qt_metacast"
1>d:\my c++projects\qt5\mainwindow.moc.h(74): error C2027: использование неопределенного типа "MainWindow"
1>          d:\my c++projects\qt5\mainwindow.h(5): см. объявление "MainWindow"
1>d:\my c++projects\qt5\mainwindow.moc.h(76): error C2352: QMainWindow::qt_metacall: недопустимый вызов нестатической функции-члена
1>          c:\qt\4.8.1\src\gui\widgets\qmainwindow.h(65): см. объявление "QMainWindow::qt_metacall"
1>  Создание кода...
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: