属性管理器
推荐一种可复制配置的方式,视图里选择其他窗口,再选择属性管理器
我们选择要配置的类型,我选择Debug 64位的配置,添加新项目属性表
选择创建属性的名字
接下来双击我们创建好的属性文件,将之前配置的boost和jsoncpp库属性移动到这里,把之前在项目中配置的删除。
包含目录
库目录
链接库
接下来配置grpc头文件包含目录,C++ 常规-> 附加包含目录添加如下
1 | D:\cppsoft\grpc\third_party\re2 |
接下来配置库路径, 在链接器常规选项下,点击附加库目录,添加我们需要的库目录
1 | D:\cppsoft\grpc\visualpro\third_party\re2\Debug |
在链接器->输入->附加依赖项中添加
1 | libprotobufd.lib |
之后点击保存会看到项目目录下生成了PropertySheet.props文件
proto文件编写
在项目的根目录下创建一个proto名字为message.proto
1 | syntax = "proto3"; |
接下来我们利用grpc编译后生成的proc.exe生成proto的grpc的头文件和源文件
1 | D:\cppsoft\grpc\visualpro\third_party\protobuf\Debug\protoc.exe -I="." --grpc_out="." --plugin=protoc-gen-grpc="D:\cppsoft\grpc\visualpro\Debug\grpc_cpp_plugin.exe" "message.proto" |
上述命令会生成message.grpc.pb.h和message.grpc.pb.cc文件。
接下来我们生成用于序列化和反序列化的pb文件
1 | D:\cppsoft\grpc\visualpro\third_party\protobuf\Debug\protoc.exe --cpp_out=. "message.proto" |
上述命令会生成message.pb.h和message.pb.cc文件
接下来我们将这些pb.h和pb.cc放入项目中
我们新建一个VarifyGrpcClient类,vs帮我们自动生成头文件和源文件,我们在头文件添加Grpc客户端类
1 |
|
我们在之前收到post请求获取验证码的逻辑里添加处理
1 | RegPost("/get_varifycode", [](std::shared_ptr<HttpConnection> connection) { |
服务器读取配置
我们很多参数都是写死的,现通过配置文件读取以方便以后修改
在项目中添加config.ini文件
1 | [GateServer] |
添加ConfigMgr类用来读取和管理配置, 定义一个SectionInfo类管理key和value
1 | struct SectionInfo { |
定义ComigMgr管理section和其包含的key与value
1 | class ConfigMgr |
构造函数里实现config读取
1 | ConfigMgr::ConfigMgr(){ |
在const.h里声明一个全局变量
1 | class ConfigMgr; |
接下来在main函数中将8080端口改为从配置读取
1 | ConfigMgr gCfgMgr; |
其他地方想要获取配置信息就不需要定义了,直接包含const.h并且使用gCfgMgr即可。
总结
本节基于visual studio配置grpc,并实现了grpc客户端发送请求的逻辑。下一节实现 grpc server