封装cpp-httplib成dll包,为老项目提供http网络支持

项目介绍:

       公司内某些老的项目不支持https或者http1.1的一些新功能,需要开发对应的SDK供其调用,以便维护老项目。

第一步:下载cpp-httplib

点击这里去下载最新的代码:mirrors / yhirose / cpp-httplib · GitCode

 直接下载zip文件即可。

封装cpp-httplib成dll包,为老项目提供http网络支持_第1张图片

将其解压备用封装cpp-httplib成dll包,为老项目提供http网络支持_第2张图片

 第二步:动态链接库(DLL)

1、创建DLL工程

流程:文件 -> 新建 -> 项目 -> 动态链接库(DLL)-> Next  - > 填写项目名。

图1:DLL项目创建

封装cpp-httplib成dll包,为老项目提供http网络支持_第3张图片

 图2:DLL项目名设置

封装cpp-httplib成dll包,为老项目提供http网络支持_第4张图片

 2、等待项目生成

等待项目生成后项目结构如下图。

封装cpp-httplib成dll包,为老项目提供http网络支持_第5张图片

3、配置依赖

点击项目按右键,选择在文件夹中打开项目

封装cpp-httplib成dll包,为老项目提供http网络支持_第6张图片

进入项目文件夹后新建include文件夹。 

 封装cpp-httplib成dll包,为老项目提供http网络支持_第7张图片

 将原先httplib的httplib.h复制进入include文件夹。

封装cpp-httplib成dll包,为老项目提供http网络支持_第8张图片

 回到vs中,选择项目之后选择属性

封装cpp-httplib成dll包,为老项目提供http网络支持_第9张图片

 在VC++目录中选择包含目录,并将刚才新建的include目录选择进去

封装cpp-httplib成dll包,为老项目提供http网络支持_第10张图片

封装cpp-httplib成dll包,为老项目提供http网络支持_第11张图片

4、配置dll包模式

在C/C++中选择代码生成,并选择运行库,在运行库中选择MDd模式。

封装cpp-httplib成dll包,为老项目提供http网络支持_第12张图片

 在配置属性常规中选择配置类型为动态库。

封装cpp-httplib成dll包,为老项目提供http网络支持_第13张图片

 第三步:撰写代码并编译

HttpUtils.h文件

extern "C"  HTTPUTILS_API void testHttp();

HttpUtils.cpp文件

/*这里是需要的引用*/
#include"httplib.h"
#include 
#include 
using namespace std;



HTTPUTILS_API void testHttp() {
    httplib::Client cli("www.baidu.com");
    auto res = cli.Post("/");

    string str;

    std::cout<< str << res->body << std::endl;


    printf("port :%s\n", str.data());
    
}

编译代码:

右击项目点击生成

封装cpp-httplib成dll包,为老项目提供http网络支持_第14张图片

 生成完毕后会在Debug目录下生成对应的dll文件

封装cpp-httplib成dll包,为老项目提供http网络支持_第15张图片

项目地址:

下面是项目的github地址,大家可以去看看:GitHub - 1756336885/HttpUtils: C++封装的DLL包,可以为一些老项目提供http支持

参考文章:

C++ HTTP 库 cpp-httplib 使用(1) - 安装 - 简单教程,简单编程

vs中c++添加lib库和头文件(外部依赖项)_c++添加外部依赖项_biyusr的博客-CSDN博客

解决C++项目如何调用动态库 .dll文件的问题_c++使用dll库_BREKOJI的博客-CSDN博客

C++ 制作动态链接库.dll及.dll使用_搬砖魂的博客-CSDN博客

原来C++调用HTTP API接口也能这么优雅_c++ http api_weixin_40603938的博客-CSDN博客

Windows下C++调用Http接口_windows c++ http_cvvideo的博客-CSDN博客

错误C2491:“*** ”:不允许dllimport函数的定义;_瑶池酒剑仙的博客-CSDN博客

【C++】【字符串格式化】printf用法详解_c++ printf %s_命运之手的博客-CSDN博客

string与char相互转换_string转char_再路上1216的博客-CSDN博客

&和*的区别_&*_hasakei_的博客-CSDN博客

cpp-httplib库的简介与工作流程_Hidden.Blueee的博客-CSDN博客

c++ 开源http服务端 httplib_c++ httplib_莫回首�的博客-CSDN博客

# [转]C++工程编译之“error LNK2001: 无法解析的外部符号” - 程序员大本营

QT、VS常见bug及解决办法(三)——error LNK2038 RuntimeLibrary 不匹配的解决-蒲公英云

你可能感兴趣的:(C++,c++)