C++ Can’;t为AES加密创建上下文。视窗XP

C++ Can’;t为AES加密创建上下文。视窗XP,c++,visual-studio,wincrypt,C++,Visual Studio,Wincrypt,我制作了这样的代码,可以为aes加密创建contex(支持Win32API): 它在Windows7或更高版本上运行良好,但当我在WindowsXP上启动它时,并没有出现错误,只是关闭了应用程序。什么也没有。怎么了? 重要提示:此API已弃用。新的和现有的软件应该开始使用加密技术下一代API。Microsoft可能会在将来的版本中删除此API。这不是我的解决方案problem@Jureg,我认为它在新系统上失败了。对不起,我误解了意思。您是否调试以查看程序的退出位置,GetLastError()

我制作了这样的代码,可以为aes加密创建contex(支持Win32API):

它在Windows7或更高版本上运行良好,但当我在WindowsXP上启动它时,并没有出现错误,只是关闭了应用程序。什么也没有。怎么了?


重要提示:此API已弃用。新的和现有的软件应该开始使用加密技术下一代API。Microsoft可能会在将来的版本中删除此API。

这不是我的解决方案problem@Jureg,我认为它在新系统上失败了。对不起,我误解了意思。您是否调试以查看程序的退出位置,GetLastError()是否返回错误代码?我试图获取最后一个错误,但没有输出。它立即关闭cmd。当试图收购时,它正在关闭contex@Jureg,很抱歉,我没有及时回复您,设置断点或系统(“暂停”)以暂停程序,以便您可以详细了解程序的工作方式。win XP上的安全性,您是认真的吗?@phuclv您为什么不知道win XP多年来一直不受支持,是吗?还有很多微软没有费心去修复的漏洞,除了两个因为XP而影响Windows更新版本传播太快的漏洞,即使只是将win XP机器连接到网络也会对其他PC造成巨大威胁,
if (!CryptAcquireContext(&hProvs, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT))
    {
        if (!CryptAcquireContext(&hProvs, NULL, NULL, PROV_RSA_AES, CRYPT_NEWKEYSET | CRYPT_VERIFYCONTEXT))
        {
            printf("%d\n", GetLastError());
            getchar();
            ExitProcess(0);
        }
    }