Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2018, 13:35   #1
busyandr
 
Регистрация: 22.02.2018
Сообщений: 5
По умолчанию Язык выводимой информации

Здравствуйте, искал нужну тему, так и не нашел. Если есть извините. такой вопрос: пытаююсь вывести список поддерживаемых алгоритмов, а выводится такое
Код:
#pragma comment(lib,"advapi32.lib")
#include"stdafx.h"
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <Wincrypt.h>
#include <iostream>
using namespace std;
HCRYPTPROV hProv = NULL;

int main()
{
	DWORD mybuf;
	mybuf = 1000;
	BYTE pbData[1024];
	CryptAcquireContext(
		&hProv,
		NULL,
		NULL,
		PROV_RSA_FULL,
		CRYPT_VERIFYCONTEXT);
	CryptGetProvParam(
		hProv,
		PP_ENUMALGS_EX,
		pbData,
		&mybuf,
		CRYPT_FIRST);
		cout << pbData << endl;
		while (GetLastError() != ERROR_NO_MORE_ITEMS)
		{
			CryptGetProvParam(
				hProv,
				PP_ENUMALGS_EX,
				pbData,
				&mybuf,
				CRYPT_NEXT
			);
			cout << pbData << endl;
		}

		system("pause");

    return 0;
}
Изображения
Тип файла: png ajnj.png (5.7 Кб, 49 просмотров)
busyandr вне форума Ответить с цитированием
Старый 22.02.2018, 13:54   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. Вы неправильно вызываете функцию. Даже в доке есть ссылка на целый раздел, как правильно выделять память для подобных функций через запрашивание размера или постепенное увеличение.
2. Вам возвращается не имя, не строка, а структура PROV_ENUMALGS_EX. Если выводить в лоб, то так и будет.

Вы ведь доку не читали совсем?
p51x вне форума Ответить с цитированием
Старый 22.02.2018, 14:03   #3
busyandr
 
Регистрация: 22.02.2018
Сообщений: 5
По умолчанию

Правильно я понимаю, что дока, это MSDN?
busyandr вне форума Ответить с цитированием
Старый 22.02.2018, 14:27   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Можете и другую, но офф МСДН.
p51x вне форума Ответить с цитированием
Старый 22.02.2018, 17:55   #5
busyandr
 
Регистрация: 22.02.2018
Сообщений: 5
По умолчанию

не могли бы чуть дальше подтолкнуть со вторым, сижу уже 4 час, все не могу понять где все таки лежит эта информация. Как я понял, для распределения памяти параметр pbData должен быть NULL.
busyandr вне форума Ответить с цитированием
Старый 22.02.2018, 18:19   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вы не знаете, что такое структура?..

Открываем офф. доку https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx на возвращаемое PROV_ENUMALGS_EX и
Код:
typedef struct _PROV_ENUMALGS_EX {
  ALG_ID aiAlgid;
  DWORD  dwDefaultLen;
  DWORD  dwMinLen;
  DWORD  dwMaxLen;
  DWORD  dwProtocols;
  DWORD  dwNameLen;
  CHAR   szName[20];
  DWORD  dwLongNameLen;
  CHAR   szLongName[40];
} PROV_ENUMALGS_EX;
можем даже описание почитать
Цитата:
szName
A null-terminated ANSI string that contains the name of the algorithm.

szLongName
A null-terminated ANSI string that contains the long name of the algorithm.
Таки с чем вы сидите 4 часа?
p51x вне форума Ответить с цитированием
Старый 22.02.2018, 20:01   #7
busyandr
 
Регистрация: 22.02.2018
Сообщений: 5
По умолчанию

Вот именно над этим) заходил сюда,видимо тупанул, думал это не то. спасибо большое
busyandr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задать позиционирование выводимой надписи о состоянии введённого пользователем логина? Roman1209200 JavaScript, Ajax 1 24.03.2017 22:26
TOleContainer Excel и размеры выводимой таблици netpolice Компоненты Delphi 1 15.02.2013 19:56
ФЗ «Об информации, информационных технологиях и о защите информации» Virtson Свободное общение 2 08.07.2010 18:13
ввод информации с клавиутуры в двумерный масив, запись информации с масива в файл x_omega_x Помощь студентам 1 29.12.2008 02:30