精易论坛

标题: libcurl静态编译支持库 无需附带DLL 易语言也能使用C++静态库 [打印本页]

作者: 第一页    时间: 2020-12-11 22:28
标题: libcurl静态编译支持库 无需附带DLL 易语言也能使用C++静态库
本帖最后由 章鱼大大 于 2020-12-12 00:41 编辑

最近比较闲 在搞反调试 之前有人找我要代码 但是当时没找到 现在又找回来看了一遍 突然发现一些更有意思的东西

先上效果图 EXE不需要附带一个DLL 而是直接将Libcurl的代码静态编译到EXE中


最终编译出来的EXE大小如下

这篇帖子里的内容会比较多 我慢慢说
2年前我调出过一次VS2015编译器 帖子在这里 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14131306&extra=
用在易语言中 那个编译器虽然对很多老的支持库不够兼容 但是那个编译器潜力非常大 甚至你想把github上的项目全搬到易语言里也问题不大
我这个帖子主要目的是为了展示如何把C++的静态库直接丢到易语言里面去参加编译
论坛看了一圈关于SSL的内容 基本都是libcurl 而且必须要带一个DLL 这个东西很烦人 而且体积还很大 不如直接编译到EXE里面好看
至于如何在2015的环境下开发易语言支持库的帖子我也写过了 在这里https://125.confly.eu.org/forum.php?mod=viewthread&tid=14132061&extra=
我这里只提一下不一样的地方

第一步:先把libcurl加到工程里 设置MT 关掉代码优化等选项 设置libcurl静态库宏 这个不能写在预编译指令里 建议写死在某个地方

第二步:编译libcurl静态库 放入到易语言编译器文件夹下面的lib中即可

第三步:添加libcurl的依赖库 这个是必须的 这里设置后 link.ini就不用麻烦了

第四步:这一步就是代码封装了 如果只是单纯的想在易语言里面用C++的代码 可以直接简单调整一下就行 我这里只写了一个测试用的代码

第五步:编译易语言支持库的静态和动态 分别放入易语言文件夹中
到此就结束了
按照上面的流程 任何C++代码都可以编译成静态库最终用在易语言中 包括github上的各种知名项目
libcurl本身是纯C写的 理论上是可以经过修改后用VC6编译 但是官方早就升级项目到了VS2013 至少我用的时候已经是这个版本了
---
1.这个项目只是示例代码 里面的封装是我以前用来爬小黄书时候用过的封装
这个东西之前就把源码放出来过 但是最后又弄丢了
论坛附件有大小限制 我穿不上来 有需要的可以留邮箱 或者加群自取

2.上一个帖子中的VC2015编译器貌似并不是我之前留下来的那份 我自己手里也没有了 我这个都是临时从VS2015里面重新提取出来用的 不过那份我也下载试了一下 是可以用没什么问题的

3.如果你们对静态编译的Libcurl感兴趣 而且人多的话 我会考虑把libcurl正式封装成一个支持库 代码也会直接开源放出来 这都不是什么很稀奇的代码了

4.现在能接受2015编译器的人很少很少 而且论坛和易语言都是一副看起来快凉了的样子
要是人多的话 我可以封装一些github的好东西放在支持库里面 比如著名的blackbone 内存读写内存搜索各种骚操作里面都有 扒下来编译一下就能丢到易语言里面用 代码质量秒杀很多模块十条街 而且还是开源的

5.群号:727137285 群里其实没啥人...都快成小广告群了

这是测试时用的三个支持库 里面的libcurl get访问命令是可以用的 调试只需要第一个就够了 静态编译3个都需要
CGLIBFE.zip (699.96 KB, 下载次数: 84) CGLIBFE_static.zip (190.06 KB, 下载次数: 80) libcurl.zip (812.78 KB, 下载次数: 100)

作者: 落寞23333    时间: 2020-12-14 08:18
这么好的贴没人回复?
作者: 第一页    时间: 2020-12-14 21:28
落寞23333 发表于 2020-12-14 08:18
这么好的贴没人回复?

VS2015编译器不支持老的支持库 所以没什么人用
作者: jingyi11023995    时间: 2021-1-5 18:05
虚拟机里面的XP支持库列表竟然没有。
作者: 风语如歌    时间: 2021-1-21 22:53
毫无意义,易语言官方静态库都是用vc6.0编译的,使用高版本链接器,会链接到高版本的msvcrt和msvcp。造成的ABI兼容问题不用我多说了吧?
作者: 风语如歌    时间: 2021-1-21 22:54
毫无意义,易语言官方静态库都是用的vc6.0编译,高版本链接器会链接到高版本的C标准库和C++标准库,造成ABI兼容问题。
作者: foudiewang    时间: 2023-2-25 17:07
谢谢分享学习一下
作者: 在看风云    时间: 2023-5-24 11:24
6666666666666666666
作者: 419099520    时间: 2023-11-12 18:55
谢谢谢谢谢谢谢谢
作者: superice    时间: 2023-12-2 23:49
666
作者: Ahdbh    时间: 2024-2-21 03:30
#在这里快速回复#谢谢分享
作者: mmlai8    时间: 2024-8-25 09:26

谢谢分享学习一下
作者: ooonly    时间: 2024-9-8 00:54
谢谢分享学习一下
作者: fangguisheng    时间: 2024-10-18 12:01
阿山地哦i哦想,谢谢




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4