Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита программы льготным периодом работы, Не корректный указатель на объект 
V
    Опции темы
StillPhelix
Дата 17.1.2017, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 6.1.2016

Репутация: нет
Всего: нет



Программа при первом запуске в реестре устанавливает текущую дату. При последующих запусках проверяет не истёк ли срок её работы. Первый раз программа отрабатывает нормально, а при последующих спотыкается на строке №33 CString s0 = r_t.Format("%A, %B %d, %Y") из-за некоректного указателя. Не могу понять почему.
Код

#include <Windows.h>
#include <stdio.h>
#include <conio.h>
#include <atltime.h>
#include <atlstr.h>

int main()
{
    HKEY hKey;
    DWORD res;
    DWORD TYPE;

    printf("Demo \n");
    if(RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\DEMO", 0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &res)!=ERROR_SUCCESS)
        return 0;
    if (res == REG_CREATED_NEW_KEY)
    {
        CTime t;
        t = t.GetCurrentTime();
        time_t    t_t = t.GetTime();
        RegSetValueEx(hKey,"",0,REG_DWORD,(CONST BYTE *) &t_t,4);
        printf("Base time have saved! \n");                
    }
    else
    {
        CTime t;
        time_t    t_t,t_c;
        t = t.GetCurrentTime();//Возвращает текущей системной даты и времени в формате UTC.
        t_c = t.GetTime();//GetTime возвращает число секунд между текущим объектом CTime и 1-ое января 1970.
        res=5;            
        RegQueryValueEx(hKey,"",0,&TYPE,(LPBYTE) &t_t,&res);
        CTime r_t(t_t);
        CString s0 = r_t.Format("%A, %B %d, %Y");
        printf( "Base time is  %s\n",s0  );
        t_t = t_t >> 0xF; t_c = t_c >> 0xF; t_c -= t_t;
        printf ("%d  Day left \n",20 - t_c);
        if (t_c<20) 
        {
            printf("Working... \n\n");
        }
        else
        {
            printf("Abort! \x7 \n\n");                    
        }
    }
    RegCloseKey(hKey);

    _getch();
    return 0;
}

PM MAIL   Вверх
StillPhelix
Дата 17.1.2017, 21:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 6.1.2016

Репутация: нет
Всего: нет



в строке №32 правим
Код

CTime r_t(t_c);
и всё работает
PM MAIL   Вверх
Google
  Дата 27.5.2019, 01:02 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.