V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bao3
V2EX  ›  C

怎么能把需要的 dll 打包进程序?

  •  
  •   bao3 · 2017-09-06 18:54:38 +08:00 · 2555 次点击
    这是一个创建于 2395 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我写了一段 win C 控制台程序,需要两个 dll 文件,放在同一个目录下可以正常运行,现在我是想有没有什么办法把这 2 个 dll 包进 c 的代码中。。。。。这样就可以一个文件直接运行,也少了依赖或者误删。 希望大家可以帮我想想,谢谢。

    14 条回复    2017-09-06 23:19:18 +08:00
    t6attack
        1
    t6attack  
       2017-09-06 18:56:28 +08:00
    Enigma Virtual Box
    fengxuejianshi
        2
    fengxuejianshi  
       2017-09-06 19:17:39 +08:00 via iPhone
    link
    ragnaroks
        3
    ragnaroks  
       2017-09-06 19:17:52 +08:00
    除去楼上的打包以外,还可以考虑硬编码 dll 进去,用的时候释放出来
    liberize
        4
    liberize  
       2017-09-06 19:21:07 +08:00 via Android
    7z 自解压文件
    hezhe
        5
    hezhe  
       2017-09-06 19:22:12 +08:00 via Android
    把他们加入到资源文件,然后引用。
    FanWall
        6
    FanWall  
       2017-09-06 19:29:56 +08:00 via Android   ❤️ 1
    wdlth
        7
    wdlth  
       2017-09-06 21:21:30 +08:00
    加到资源里面,再放出来用。
    wevsty
        8
    wevsty  
       2017-09-06 21:23:26 +08:00   ❤️ 1
    静态编译不就行了?
    ysc3839
        9
    ysc3839  
       2017-09-06 21:24:06 +08:00 via Android
    @FanWall 内存加载 DLL 应该是对用户最友好的方法,不过有可能出现一些问题,建议多测试一下。
    baixiangcpp
        10
    baixiangcpp  
       2017-09-06 21:28:14 +08:00
    静态编译,不要想其他方法了
    4ever911
        11
    4ever911  
       2017-09-06 22:20:54 +08:00
    放到 resource, 然后 load dll from memory, 我以前一个程序防破解就是这样, 加密 dll 保存在 exe 中。
    geelaw
        12
    geelaw  
       2017-09-06 22:25:52 +08:00 via iPhone
    并不是所有的 DLL 都可以合法方便地静态链接,并不是所有的程序都可以很简单改成动态加载 DLL 而不依赖编译器自动搞定这事儿。

    正确的思路是使用 iexpress 之类的工具,做一个自解压程序。
    yping
        13
    yping  
       2017-09-06 22:42:31 +08:00
    Enigma Virtual Box,还有压缩功能,不妨试试。
    tghgffdgd
        14
    tghgffdgd  
       2017-09-06 23:19:18 +08:00
    我猜你的 2 个 dll 莫非是 msvcrXXX.dll 和 msvcpXXX.dll ?是你就改下静态编译。不是你就考虑自解压打包的方式解决最快。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1944 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:23 · PVG 00:23 · LAX 09:23 · JFK 12:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.