#include <wincrypt.h>编译有问题的

Cmake-gui生成sln后,再次vs打开sln,遇到编译失败。

提示的是

#include <wincrypt.h>

4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(380,29): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(380,19): error C2146: 语法错误: 缺少“;”(在标识符“HCRYPTPROV”的前面)
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(899,17): error C3646: “dwVersion”: 未知重写说明符
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(899,26): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(901,13): error C2143: 语法错误: 缺少“;”(在“*”的前面)
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(901,13): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(901,19): error C2238: 意外的标记位于“;”之前
4>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\wincrypt.h(902,13): error C3646: “cbOID”: 未知重写说明符

 

要将 #include <windows.h>放在#include <wincrypt.h>前面

#ifdef _WIN32
#include <windows.h>
#include <wincrypt.h>
#else
#include <openssl/hmac.h>
#endif

以后在遇到类似问题:

可能是其他window系统文件的顺序,

注意需要将windows.h和windef.h加到最前,放在 wincrypt.h之前

 

后来发现网上已经提供过方法,自己么有找,先将他们的网页引用

参考https://blog.csdn.net/weixin_34008933/article/details/92344603

参考 https://blog.csdn.net/weixin_34008933/article/details/92344603

posted @   曦花  阅读(278)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2022-05-16 TerminateThread
点击右上角即可分享
微信分享提示