Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: time_t при переходе в visual studio 2012  (Прочитано 9459 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« : 27-11-2014 10:24 » 

Здравствуйте.
Ещё раз хочу обратиться к вам за помощью.
Проект, написанный на Visual c++ 6, вызвала из Visual Studio 2012.
После исправлений мелких ошибок и пару предупреждений программа запустилась и якобы заработала.

Первый вопрос возник о переменных типа CTime и time_t, у них размерность 8 байт стала вместо 4.
У меня данные читаются из файла, время там описывается 4 байтами, к примеру в структуре

struct HEADER_FILE_BD{
int kod_d;
time_t time_open,
          time_close;
}

Те sizeof(HEADER_FILE_BD) будет разная.
 Выход подскажите.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 27-11-2014 10:39 » 

привет!

опиши старый вариант структуры как

Код:
struct HEADER_FILE_BD_old
{
  struct time_t_old
  {
        BYTE[4]; //тут нужно реальное описание этих 4 байтов
  };

int kod_d;
time_t_old time_open;
time_t_old time_close;
} ;

прочитай из файла структуру , а затем конвертни в новую структуру

Код:
struct HEADER_FILE_BD
{
int kod_d;
time_t time_open;
time_t time_close;

  HEADER_FILE_BD():kod_d(0)
  {
  }

   void fillFromOld(const HEADER_FILE_BD_old& old)
   {
         kod_d=old.kod_d;
         time_open=old.time_open; //тут нужно написать конвертацию
         time_close=old.time_close; //тут нужно написать конвертацию

   }
}
Записан

ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #2 : 27-11-2014 11:16 » 

Спасибо, буду пробовать.
Записан
darkelf
Молодой специалист

nl
Offline Offline

« Ответ #3 : 27-11-2014 12:31 » 

Здравствуйте.
Ещё раз хочу обратиться к вам за помощью.
Проект, написанный на Visual c++ 6, вызвала из Visual Studio 2012.
После исправлений мелких ошибок и пару предупреждений программа запустилась и якобы заработала.

Первый вопрос возник о переменных типа CTime и time_t, у них размерность 8 байт стала вместо 4.
У меня данные читаются из файла, время там описывается 4 байтами, к примеру в структуре

struct HEADER_FILE_BD{
int kod_d;
time_t time_open,
          time_close;
}

Те sizeof(HEADER_FILE_BD) будет разная.
 Выход подскажите.
можно даже просто time_t заменить на какой-нибудь uint32_t (если таковой имеется, или на unsigned int, если такого нет)
Записан
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #4 : 27-11-2014 13:20 » new

darkelf, так и сделала. Спасибо, всё получилось
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines