MingW缺少Win32加密API的一些功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MingW缺少Win32加密API的一些功能相关的知识,希望对你有一定的参考价值。

我需要使用Win32 Crypto API中的一些函数,例如CryptQueryObject。问题是我还需要用MingW编译我的程序,并且包含的​​crypto库缺少我需要的一些函数,比如前面提到的CryptQueryObject。我尝试复制相关的C头定义,以便程序现在编译,但在链接时它失败了未定义的引用错误(因为mingw的crypt32.dll没有实现某些功能)。我尝试链接C: Windows System32 crypt32.dll,但它仍然返回链接错误。

有没有办法在mingw中使用整个Crypto API?

答案

您需要动态链接到crypt32.dll。您可以在运行时使用Win32 API函数LoadLibrary + GetProcAddress执行此操作,也可以在编译时使用import library执行此操作。

对于运行时绑定,MSDN有一个good example

编辑:如果您需要MinGW标头中没有的一堆API函数,请转到导入库。

另一答案

我有同样的问题。下载并安装Windows SDK

现在调用链接器:

gcc -L"C:Program Files (x86)Windows Kits10Lib10.0.14393.0umarm" -o "Test"  ./main.o -lcrypt32

以上是关于MingW缺少Win32加密API的一些功能的主要内容,如果未能解决你的问题,请参考以下文章

cygwin和mingw的区别

构建 qwt-6.1 中的错误“缺少分隔符”

MinGW-w64非官方编译器集成安装包(很清楚)

Windows10配置MinGW64教程

Qt 如何生成可执行程序,用mingw32-make生成的缺少dll文件

如何在 Qt 中处理用于加密的 MinGW 32 位编译器中的 128 位变量(Diffie Hellman 算法)