Russian Qt Forum
Ноябрь 06, 2024, 03:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Qt 3.3.8] Неправильная работа moc  (Прочитано 3989 раз)
Sergeich
Гость
« : Сентябрь 04, 2007, 14:14 »

Столкнулся с тем, что moc неправильно обрабатывает выражения вида:
Код:
template class QMap<int, QObject*>;
пишет, что в этой строке ошибка в синтаксисе  Злой Я использую
Код:
template class __declspec(dllexport) QMap<int, QObject*>;
чтобы устранять ворнинги типа
Код:
warning C4251: 'Foo::data' : class 'QMap<Key,T>' needs to have dll-interface to be used by clients of class 'Foo'
        with
        [
            Key=int,
            T=QObject *
        ]
В связи с этим два вопроса:
1) Устранена ли эта проблема в Qt 4.x.x?
2) Есть ли какие-нибудь макросы, чтобы moc не обработатывал кусок кода?
Записан
vaprele07
Гость
« Ответ #1 : Сентябрь 04, 2007, 14:34 »

Using the Meta-Object Compiler (moc)
Цитировать
You can explicitly tell the moc not to parse parts of a header file. moc defines the preprocessor symbol Q_MOC_RUN. Any code surrounded by
 #ifndef Q_MOC_RUN
     ...
 #endif
Записан
Sergeich
Гость
« Ответ #2 : Сентябрь 04, 2007, 15:03 »

Мда... ассистант наше все Улыбающийся Спасибо! Нарисовал
Код:
//MOC_SKIP_BEGIN
template class FOO_EXPORT QMap<int, QObject*>;
//MOC_SKIP_END
и все заработало Улыбающийся
Но все-таки, в 4-ке moc ругается на такие выражения?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.115 секунд. Запросов: 21.