一、原因
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)