Аргумент типа «unsigned long *» несовместим с параметром типа «HCRYPTHASH *»

Я использую Visual Studios 2012 на Windows 8.1, на 64-битной машине. У меня проблемы с компиляцией следующего кода для c ++, получая вышеуказанную ошибку:

#include <windows.h>
#include <wincrypt.h>
void MD5Init(MD5Context *ctx)
{
CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &ctx->hHash);
}

Тем не менее, это, кажется, так это называется (вот тот, который имеет тот же вызов и дает мне ту же ошибку). VS предлагает пару возможных исправлений, которые я попробую, но кто-нибудь знает, почему происходит такое поведение и как его избежать?

Предлагаемые исправления:

ошибка C2664: «CryptCreateHash»: невозможно преобразовать параметр 5 из
‘unsigned long *’ to ‘HCRYPTHASH *’ Типы, на которые указывают, не связаны;

преобразование требует reinterpret_cast, приведения в стиле C или в стиле function
бросать

Спасибо,

Aodhán

Изменить: Это не происходит для 32-битной компиляции, поэтому я думаю, что это то, что я прочитал примеры были сделаны. Я буду обновлять, работали ли предложенные исправления для 64-битной компиляции.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]