Перейти к содержанию
СофтФорум - всё о компьютерах и не только

работа со строками


Рекомендуемые сообщения

добрый день. есть такой код:

CString b;LPBYTE pbUserCert;HCRYPTKEY hKey = 0;HCRYPTPROV phProv;DWORD size;DWORD fParam = CRYPT_FIRST;PCCERT_CONTEXT pUserCert=0;DWORD dwUserCertLength=0;DWORD name_size;char *SIGNER_NAME;CString CERT_STORE;CryptAcquireContext( &phProv,				NULL,				"Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider",75,				CRYPT_VERIFYCONTEXT				);while( CryptGetProvParam(phProv, PP_ENUMCONTAINERS, NULL, &size, fParam) ){BYTE * ContNameD=(BYTE*)malloc(sizeof(BYTE*)*size);int len = (int)size;CryptGetProvParam(phProv, PP_ENUMCONTAINERS, ContNameD, &size, fParam);ContNameD[len]=0;CERT_STORE = (CString) ContNameD;printf(CERT_STORE);fParam = 0;}if(!CryptAcquireContext(&phProv,CERT_STORE,		  "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider",75,CRYPT_MACHINE_KEYSET))MyHandleError("CryptAcquireContext");if(!CryptGetUserKey(phProv,AT_KEYEXCHANGE,&hKey))MyHandleError("CryptGetUserKey");if (!CryptGetKeyParam (hKey, KP_CERTIFICATE, NULL,&dwUserCertLength, 0)) {MyHandleError ("Error during GetKeyParam.\n");}pbUserCert = (BYTE*)malloc (dwUserCertLength);if (pbUserCert == NULL) {MyHandleError ("Error during malloc.\n");}if (!CryptGetKeyParam (hKey, KP_CERTIFICATE, pbUserCert,&dwUserCertLength, 0)) {MyHandleError ("Error during GetKeyParam.\n");}pUserCert = CertCreateCertificateContext (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, pbUserCert,dwUserCertLength);if (pUserCert == NULL) {MyHandleError ("Error during CertCreateCertificateContext.\n");}name_size = CertNameToStr(MY_ENCODING_TYPE,		  &(pUserCert->pCertInfo->Subject),		  CERT_SIMPLE_NAME_STR,		  NULL,		  0);if(!(SIGNER_NAME = (char *)malloc(name_size * sizeof(TCHAR))))	{		MyHandleError(TEXT("Memory allocation failed."));	}name_size = CertNameToStr(MY_ENCODING_TYPE,		  &(pUserCert->pCertInfo->Subject),		  CERT_SIMPLE_NAME_STR,		  SIGNER_NAME,		  name_size);_tprintf(TEXT("Subject  -> %s.\n"), SIGNER_NAME);CryptReleaseContext(phProv,0);

вобщем, в результате, при выводе SIGNER_NAME получаю что-то типа RU, Васильев Василий Васильевич.

Подскажите пожалуйста, кто знает, как избавиться от RU, и пробела? т.е. удалить первые 4 элемента?

заранее благодарен.

Ссылка на комментарий
Поделиться на другие сайты

С этим вопросом разобрался. делал так: for(int l=0;l<=3;l++) *SIGNER_NAME=*SIGNER_NAME++;

остался такой вопрос: когда в программе опряделяю SIGNER_NAME таким образом-

#define SIGNER_NAME L"Васильев Василий Васильевич" 

прога работает нормально, а когда получаю из вышеописанного кода, возникает ошибка. Позскажите плз, если кто знает, в чём может может быть проблема?

Заранее благодарен.

Ссылка на комментарий
Поделиться на другие сайты

Помогите пожалуиста решить задачи

1)Дана строка.Подсчитать самую длинную последовательность подряд идущих букв a.

2)Дана строка,содержащая текст,записанный строчными буквами.Получить в другои строке тот же текст,записанный заглавными буквами.

3)Для каждои буквы слова 2 напечатать, сколько раз оно входит в слово 1.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...