![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 01.04.2023
Сообщений: 7
|
![]()
Почему CERT_INFO_VALIDITY_FLAG "неинициализированная локальная переменная " ?
void CКурсвя1Dlg::OnBnClickedButton1() { PCCERT_CONTEXT pCertContext = NULL; // открываем файл в режиме чтения HANDLE hCertFile = CreateFile(m_selectedFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hCertFile != INVALID_HANDLE_VALUE) { // читаем содержимое файла DWORD fileSize = GetFileSize(hCertFile, NULL); BYTE* pData = new BYTE[fileSize]; DWORD bytesRead = 0; ReadFile(hCertFile, pData, fileSize, &bytesRead, NULL); // закрываем файл CloseHandle(hCertFile); // создаем контекст сертификата из данных pCertContext = CertCreateCertificateContext(X509_A SN_ENCODING, pData, fileSize); delete[] pData; } if (pCertContext != NULL) { // получаем информацию о сертификате, включая дату истечения PCERT_INFO pCertInfo = pCertContext->pCertInfo; SYSTEMTIME stExpire; DWORD cbData = (sizeof(FILETIME)); DWORD CERT_INFO_VALIDITY_FLAG; if (CertGetCertificateContextProperty( pCertContext, CERT_INFO_VALIDITY_FLAG, &stExpire, &cbData)) { // преобразуем структуру SYSTEMTIME в строку CString expireDate; expireDate.Format(_T("%02d.%02d.%04 d"), stExpire.wDay, stExpire.wMonth, stExpire.wYear); // создаем отчет в текстовом формате CString report; report.Format(_T("Сертификат истекает %s"), expireDate); // сохраняем отчет в файл CString reportFilePath = m_selectedFilePath + _T(".txt"); CStdioFile reportFile; if (reportFile.Open(reportFilePath, CFile::modeCreate | CFile::modeWrite)) { reportFile.WriteString(report); reportFile.Close(); } } // освобождаем контекст сертификата CertFreeCertificateContext(pCertCon text); } } void CКурсвя1Dlg::OnEnChangeMfceditbrows e1() { CMFCEditBrowseCtrl m_editBrowse; m_editBrowse.GetWindowText(filePath ); // сохраняем путь к выбранному файлу в глобальной переменной m_selectedFilePath = filePath; } |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 01.04.2023
Сообщений: 7
|
![]()
p51x, НУ по идеи stExpire и cbData.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Вы о чем?
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 01.04.2023
Сообщений: 7
|
![]()
p51x, Ой ошибся , я ни знаю чему ее присваивать , но ERT_INFO_VALIDITY_FLAG это флаг, который указывает, что необходимо извлечь время действия сертификата.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
курсовой в С# | YaDenis | Помощь студентам | 1 | 15.04.2013 21:26 |
Проблема с курсовой | katorgindenis2 | Помощь студентам | 8 | 10.03.2013 17:13 |
Проблема с курсовой, есть идеи? | bars21 | Помощь студентам | 0 | 21.12.2011 20:47 |
Проблема с курсовой | Danilyuk | Помощь студентам | 3 | 20.05.2008 15:54 |