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

2017-09-06 18:54:38 +08:00
 bao3

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

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

正确的思路是使用 iexpress 之类的工具,做一个自解压程序。
yping
2017-09-06 22:42:31 +08:00
Enigma Virtual Box,还有压缩功能,不妨试试。
tghgffdgd
2017-09-06 23:19:18 +08:00
我猜你的 2 个 dll 莫非是 msvcrXXX.dll 和 msvcpXXX.dll ?是你就改下静态编译。不是你就考虑自解压打包的方式解决最快。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/388714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX