【问题标题】:Convert a dll to a lib for static linking?将dll转换为lib以进行静态链接?
【发布时间】:2010-08-03 01:39:26
【问题描述】:

有没有静态链接 dll 的免费方法?我试过 dll 到 lib 但 999 美元太贵了。什么是替代品,因为我想要 1 个不错的 exe 而不是 1 个 exe + 1 个 DLL。

谢谢

【问题讨论】:

  • 考虑到这有多难,这是一个相当不错的价格。

标签: c++ c dll static-linking


【解决方案1】:

我不确定它甚至可以完成。有些问题需要非常小心地处理。

  • DLL 中的资源? LIB 文件不包含这些文件,因此您还必须将它们导出,然后将它们重新集成到最终的 EXE 中
  • 谁调用 DLLMain,何时调用?

Lou Franco 的想法可以解决所有这些问题,但重要的是要确保您不会将解压后的 DLL 留在用户的驱动器上。

【讨论】:

    【解决方案2】:

    您可以将 dll 放入资源中,然后将其写出并动态加载。您必须使用延迟加载,并确保在调用其中的任何内容之前将其写出来。

    实际上并没有这种方式链接,但您只需部署一个 .exe。

    【讨论】:

    • 我正在使用 Visual Studio,是否有分步指南?
    • 并非如此——考虑从资源中读取文件并链接到延迟加载的 dll。
    • 这在实践中是行不通的,您将没有对适当保护的机器上的目录的写访问权。
    • 我不推荐这个。我以前试过,大多数病毒扫描程序都不喜欢提取 DLL 甚至 EXE 的程序。
    【解决方案3】:

    在许多情况下,您可以使用这个很酷的库将 dll 直接从资源加载到内存中:https://github.com/fancycode/MemoryModule

    这不是您正在寻找的东西,但它会实现相同的最终目标。

    【讨论】:

      【解决方案4】:

      我在互联网上搜索并找到这个软件,我没有测试;
      http://www.coderupgrade.com/Dll2StaticLib.exe
      http://www.binary-soft.com/dll2lib/d2l.exe

      【讨论】:

        猜你喜欢
        • 2011-01-24
        • 2018-06-02
        • 2012-01-20
        • 1970-01-01
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多