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)

你可能感兴趣的:(Windows,Develop)