1、C++基础库,跨平台。目前在windows开发,还没cmake,欢迎大神来cmake或makefile。
2、集合挑选已有的开源库。
3、封装常用的功能,并提供友好的接口。
4、代码重用,避免每次要用都要花时间精力找代码封装。
已开源,开源许可MIT,可免费商用。
github仓库:https://github.com/zhuguohua/zgh
gitee仓库(从github导入):https://gitee.com/zhu_myroom/zgh
----欢迎大家参与使用,提需求、提交代码增加功能,或修复bug。
----可以提交到github仓库, 而gitee是直接从github仓库导入同步的。
----当然了,贡献代码需要注意好的代码规范~~~
待支持的功能、希望大家一起参与完善~~
见代码:main.cpp:
#include <iostream> #include "src/zgh.h" int main() { // 库的所有的功能都在命名空间:api202104 unsigned long ulcrc16 = api202104::crc16("123456", 6); unsigned long ulcrc35 = api202104::crc32("123456", 6); // zgh其实就是api202104,通过宏定义重命名。 std::string md5 = zgh::md5("123456", 6); std::string sha1 = zgh::sha1("123456", 6); std::string sha256 = zgh::sha256("123456", 6); std::string b64enc = zgh::base64::encodeStr("1234568"); std::string b64dec = zgh::base64::decodeStr(b64enc); std::string urlstr = "https://John:Dow@github.com:80/corporateshark/LUrlParser?a=你好&b=2"; std::string urlenc = zgh::urlEncode(urlstr); std::string urldec = zgh::urlDecode(urlenc); zgh::url url = zgh::url(urlstr); std::string host = url.host(); std::string port = url.port(); std::string uri = url.uri(); return 0; }
----有什么感想,是不是看完,感觉用起来很简单~~
----更多例子后续会更新出来,也可以自行看源码的,毕竟我也没太多时间,大家可以参与完善~~
vs2017。当然只要支持c++11的编译器都可以,比如vs2012. 嗯?都什么年代了,还vs2012?
如果非vs2017等打开工程,需要设置一下工程属性,选能选的就行了,见下图:
注:微软的产品真的好用,但大多收费,而我又穷,没钱给微软了,看上图右下角的windows激活,将就着用了~~
你可能有疑问,已有boost、qt、poco等跨平台库,为什么还要开发当前库?
1、庞大变得臃肿。
2、编译复杂又麻烦,阻挡了不少人。
3、编译出来的库体积大。
4、接口不友好,还需要封装。
5、而tinyxml2、jsoncpp等开源库太零散,
每次换地方用都要花时间精力搜集代码。
6、qt商用版并非免费。
1、同样是跨平台。
2、旨在轻量,部署简单,拿来就用。
3、可以嵌入到工程直接编译。(不过建议动态库或者静态库方式使用)。
4、接口定义简单,用得舒服。
5、免费商用许可。需用的第三方开源库也是免费商用许可。
使用boost、qt、poco等库,首先要突破重重障碍,完成这些库的编译,才能使用。具体编译方法不再本文讨论范围。
举例boost的使用
--后续有时间加两个例子对比。
鸣谢:
当前库用了较多第三方免费的开源组件,见git仓库的readme.md说明。
每个第三方开源库,都保留了对应的readme.md描述了。
这里感谢各开源库作者的贡献。
欢迎大家参与使用,提需求、提交代码增加功能,或修复bug。
交流企鹅:530894516