【问题标题】:MingW missing some functions from the Win32 Crypto APIMingW 缺少 Win32 Crypto API 中的一些函数
【发布时间】:2012-01-22 03:20:14
【问题描述】:

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

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

【问题讨论】:

标签: c++ winapi cryptography mingw


【解决方案1】:

我遇到了同样的问题。下载并安装Windows SDK

现在调用链接器:

gcc -L"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\arm" -o "Test"  ./main.o -lcrypt32

【讨论】:

    【解决方案2】:

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

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

    编辑:如果您需要 MinGW 标头中不存在的一堆 API 函数,请使用导入库。

    【讨论】:

    • 另一个很好的例子是文件 /crypto/rand/rand_win.c 中的 openssl 库
    猜你喜欢
    • 2012-11-24
    • 2012-03-19
    • 2021-12-16
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多