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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблемы с time_t в VC9  (Прочитано 4692 раз)
neosapient
Гость
« : Октябрь 19, 2009, 10:07 »

Здравствуйте.

Раньше писал под Visual Studio 7, которая более дружелюбно относилась к 32-х битной переменной time_t.
Но жизнь заставила перейти на Visual Studio 9. Одной из головных болей, которые при этом появились, является постаянная ошибка компилятора, при использовании переменной time_t.

Подчас, проблему можно решить, используя дерективу #define _USE_32BIT_TIME_T в начале файлов заголовков или в настройке проекта.

Но такой подход оказался неэффективен, когда я решил изучить пример examples\animation\animatedtiles  
(всего один main.cpp файл и набор  картинок) из QT4.6 + kinetic
Скопировал папку с примером на рабочий стол. Пересобрал проект командой
Цитировать
qmake -t vcapp
.

Запускаю компиляцию проекта, получил ошибку
Цитировать
error C2664: 'errno_t _wctime64_s(wchar_t *,size_t,const __time64_t *)' : cannot convert parameter 3 from 'const __time32_t *' to 'const __time64_t *'

Пробовал вставлять #define _USE_32BIT_TIME_T в настройках проекта и среди #include-ов во всех сочетаниях, но это не помогло.


Я уверен, что задачу решить можно, ведь при сборке QT4.6 + kinetic, все примеры собрались. Но не пойму, как подружить VC9 с 32-х разрядной time_t ?

(проблема возникает в файле wtime.inl, который находиться внутри VC9: возможно стоит перекомпилировать QT4 с определенными ключами, вопросс какими?)
« Последнее редактирование: Октябрь 19, 2009, 17:48 от neosapient » Записан
neosapient
Гость
« Ответ #1 : Октябрь 19, 2009, 19:15 »

Попробовал пересобрать саму QT - теперь и при работе configure вылезает такая же ошибка

Цитировать
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\wtime.inl(50) : error C2664: '_wctime64' : cannot convert parameter 1 from 'const __time32_t *' to 'const __time64_t *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\wtime.inl(56) : error C2664: 'errno_t _wctime64_s(wchar_t *,size_t,const __time64_t *)' : cannot convert parameter 3 from 'const __time32_t *' to 'const __time64_t *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
Building qmake failed, return code 2

Возможно проблема в глобальных настройках компилятора ?
 Непонимающий
Записан
crackedmind
Гость
« Ответ #2 : Октябрь 19, 2009, 21:28 »

Честно говоря похожих проблем не было.

Это "C:\Program Files (x86)\" говорит, что у вас 64-битная Виста или что-то такое Улыбающийся У вас какая версия компилятора то работает х86 или х64?
Записан
neosapient
Гость
« Ответ #3 : Октябрь 20, 2009, 11:09 »

Это "C:\Program Files (x86)\" говорит, что у вас 64-битная Виста или что-то такое Улыбающийся У вас какая версия компилятора то работает х86 или х64?
Да, 64-битная Виста.
Собираю с ключем х86.
-----------------------

Поиск по яндексу и гуглу ничего не дал, в смысле вообще ничего. Ни кто ранее не писал о подобных ошибках. Сделал вывод, что студия "рухнула", хотя я её поставил две недели назад.

В итоге вчера в конце дня снес VC9 через установку удаление, подчистил папки, проверил реестр на наличие подозрительно мусора (мусор остался, но никаких "волшебных" ключей не нашел). Затем установил студию с нуля.

Собраная ранее QT4, boost и openssl подхватились сразу.  Улыбающийся

Тема закрыта.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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