天天看点

error C2065: 'HCRYPTPROV' : undeclared identifier

一、原因

vc6缺省是不定义_WIN32_WINNT宏的。

而在wincrypt.h中有

#if (_WIN32_WINNT >= 0x0400)

...

#endif

二、解决办法是:

1、在stdafx.h中添加

#ifndef   _WIN32_WINNT

#define   _WIN32_WINNT   0x0400

#endif

2、包含如下两个头文件

#include "windows.h"

#include "Wincrypt.h"

三、、实例代码如下

    HCRYPTPROV hProv = 0;

    HCRYPTKEY hKey = 0;

    HCRYPTHASH hHash = 0;

    CryptAcquireContextW(&hProv, 0, 0, 0xCu, 0);

    CryptCreateHash(hProv, 0x8003u, 0, 0, &hHash);

    CryptHashData(hHash, v8, dwDataLen, 0);

    CryptDeriveKey(hProv, 0x6601u, hHash, 0, &hKey);

    CryptDecrypt(hKey, 0, Final, 0, (BYTE *)&v37, &pdwDataLen)