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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.  (Прочитано 7074 раз)
Bepec
Гость
« : Август 26, 2014, 17:43 »

Имеется файл

Код:
#ifndef GELLO_H
#define GELLO_H

#include <QTime>
#include <QString>
#include <QTime>
#include <QDebug>

void log(QString data)
{
qDebug() << QTime::currentTime().toString("hh:mm:ss.zzz");
}
#endif

Включаем в любом Qt классе
При компиляции вызывает следующие ошибки
Код:
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): warning C4003: not enough actual parameters for macro 'min'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2589: '(' : illegal token on right side of '::'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2059: syntax error : '::'

1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): warning C4003: not enough actual parameters for macro 'min'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2589: '(' : illegal token on right side of '::'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2059: syntax error : '::'

В интернете имеются "вроде бы" решения:
http://stackoverflow.com/questions/6884093/warning-c4003-not-enough-actual-parameters-for-macro-max-visual-studio-2010
http://stackoverflow.com/questions/9562356/warning-c4003-not-enough-actual-parameters-for-macro-min

Добавление макроса в NOMINMAX в среду или в файл даёт нулевой результат. Что делать?
« Последнее редактирование: Август 26, 2014, 21:35 от Bepec » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 26, 2014, 18:43 »

GELLO_H — сильно

Добавление макроса в NOMINMAX в среду или в файл даёт нулевой результат. Что делать?
мне помогает. писал в DEFINES его.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Август 26, 2014, 19:09 »

Убирал название, написал что думал Веселый

Печально, но тут и ужас ситуации - что у меня студия Улыбающийся
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #3 : Август 26, 2014, 21:29 »

перед #include <QTime> ставил:
Код
C++ (Qt)
#ifdef min
#undef min
#endif
 
Записан
Bepec
Гость
« Ответ #4 : Август 26, 2014, 21:35 »

В точку. Благодарю.
Способ, предложенный Johnik работает. Теперь меня ничто не остановит Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Август 26, 2014, 22:20 »

Печально, но тут и ужас ситуации - что у меня студия Улыбающийся
ты не знаешь где в студии выставляются дефайны?.. или это не помогало?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #6 : Август 26, 2014, 23:51 »

Не помогает. И если напрямую в коде выставлять, и если добавлять в настройки проекта. Дефайн есть и видим, но нулевой результат. А undef сработал.

PS поправочка - если файл включаем в нескольких файлах. В случае одиночного использования ошибки нет.
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #7 : Август 27, 2014, 00:38 »

PS поправочка - если файл включаем в нескольких файлах. В случае одиночного использования ошибки нет.
не это ли имеется ввиду (в вашем первом посте):
Код
C++ (Qt)
#include <QTime>
#include <QString>
#include <QTime>
 
Записан
Bepec
Гость
« Ответ #8 : Август 27, 2014, 10:39 »

Не, не это. Псевдокод я писал по памяти.
Имелось включение файла в 2 классах. Т.е. закомментив его в одном, я получал отсутствие ошибки. Собственно это и меня ввело в заблуждение. Второй класс я упустил из виду.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Август 27, 2014, 10:56 »

Не помогает. И если напрямую в коде выставлять, и если добавлять в настройки проекта. Дефайн есть и видим, но нулевой результат.
мне помогает почему-то (во всяком случае в 2012, хотя кажется и в 2010 работало)
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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