【问题标题】:Mingw w64 32bit toolchain libwintrustMingw w64 32 位工具链库 wintrust
【发布时间】:2014-07-20 23:24:47
【问题描述】:

您好,我正在使用 mingw w64 编译我的 Windows 服务。 一切都很好,直到我想编译 32 位版本。 我缺少 libwintrust 文件。

有人知道更多吗? 在 64 位工具链中有 libwintrust,但在 32 中没有 :(

【问题讨论】:

    标签: winapi 32-bit toolchain mingw-w64


    【解决方案1】:

    您可以尝试与 DLL 本身进行链接。并不总是有效,但值得一试。比如:

    gcc -o foo.exe obj1.o obj2.o  c:/windows/syswow64/wintrust.dll
    

    如果这不起作用,您可以尝试使用 Windows SDK 中的 wintrust.lib 文件。

    【讨论】:

    • 当一切都失败时,总是有与GetProcAddress的动态链接。
    【解决方案2】:

    好的,最后它并没有那么难。 我猜直接链接不会起作用,因为 gcc 不知道 WinVerifyTrust@12 的入口点并且在 wintrust.dll 名称中没有@12(据我所知@12 是输入数据的堆栈大小)。 Windows SDK 也有不同的编译器,所以它可能有不同的链接器。

    解决方案非常简单。您可以在 mingw w64(32 位和 64 位)的 bin 文件夹中使用 dlltool 为几乎任何 dll 生成库。你需要的只是def文件。在 def 文件中,您必须使用后缀,因为 mingw 要求它。您还必须使用选项 (-k),因为在 wintrust.dll 中它没有 @12,因此 dll 工具将知道要查找的内容。

    现在一切正常:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 2021-02-14
      • 2020-09-16
      • 2013-11-10
      • 2021-12-01
      • 2018-10-18
      • 1970-01-01
      相关资源
      最近更新 更多