Я использую 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-битной компиляции.
Задача ещё не решена.