nginx源码vs工程-自定义handler处理-创建子请求处理逻辑-filter过滤器中处理应答
*本工程功能:
1.windows下vs2019工程编译nginx源码,可正常编译运行。生成的文件在bin目录下。
2.在自定义handler上读取请求体,并在请求体读取完后处理逻辑,创建子请求转发给后端服务器处理。
3.子请求回调函数处理完后,激活父请求,继续往下阶段处理request的请求或者继续创建子请求转发数据。
4.在filter中获取后端服务器返回来的数据,处理完后,创建子请求转发到另外一个服务器处理,接收服务器回应数据,再发送回给客户端。
5.支持自定义变量的注册与获取,在location中解析到对应的变量时,动态获取到变量的当前值
(此处变量动态获取值,只有在不同的请求中才能动态获取,同一个请求中变量只会获取到一次值)
6.自定义handler进入方式可以修改,即可以从location中读取关键字,也可以从请求头中检测是否有对应字段。
(此处从请求头中检测是否有对应字段,有则进入处理,否则往下一阶段处理)
7.添加cJson库解析处理接收到的数据
8.自定义的handle
qftp源码可以被vs编译过
正常下载的qftp源码,如qftp.h qftp.cpp qurlinfo.h qurlinfo.cpp,使用vs编译时,会报使用了未定义类型“QFtpPrivate”的错误,造成没法正常使用。本源码是经过修改过的,能过通过vs编译的源码。已使用vs2017编译通过。详细修改方法见:
https://blog.csdn.net/qqwangfan/article/details/131124547
TestDesigeMode.zip
使用c++实现《大话设计模式》里面介绍的各种模式,配合《大话设计模式》来看会更容易看明白
thinkpad 黑将s5 win10开机刷脸 intel realsense 3D摄像头驱动。能正常刷脸开机
thinkpad 黑将s5 win10刷脸开机 intel realsense 3D摄像头驱动,必须按顺序安装才能启动正常刷脸开机,否则即使摄像头能用也不能正常开机。
qt窗口自适应v2.0
根据屏幕大小自适应窗口大小,包括窗口字体,所有窗体,gif都自适应大小。也支持窗口拖拉自适应大小。
自定义的QPushButton插件,可放到qt设计师使用v3.0
一个简单的自定义QPushButton插件,可放到qt设计师使用,功能有:点击时按钮连同按钮上的文字一起缩放,给人一种很明显的点击效果。具体使用方法可参考文章http://blog.csdn.net/qqwangfan/article/details/71724118 简单说是将生成的dll放到qt的plugins\designer目录下,将插件的.h和.cpp文件放到你的工程目录下,编译通过后,可以直接使用qt设计师拖拉到界面使用。插件具体位置在qt设计师的My Plugins组下。
自定义的QPushButton插件,可放到qt设计师使用v2.0
一个简单的自定义QPushButton插件,可放到qt设计师使用,功能有:点击时按钮连同按钮上的文字一起缩放,给人一种很明显的点击效果。具体使用方法可参考文章http://blog.csdn.net/qqwangfan/article/details/71724118 简单说是将生成的dll放到qt的plugins\designer目录下,将插件的.h和.cpp文件放到你的工程目录下,编译通过后,可以直接使用qt设计师拖拉到界面使用。插件具体位置在qt设计师的My Plugins组下。本次上传版本为2.0版本,相对之前上传的版本,修复了当鼠标移动到按钮外释放不会恢复原状的问题。
自定义的QPushButton插件,可放到qt设计师使用
一个简单的自定义QPushButton插件,可放到qt设计师使用,功能有:点击时按钮连同按钮上的文字一起缩放,给人一种很明显的点击效果。具体使用方法可参考文章http://blog.csdn.net/qqwangfan/article/details/71724118
简单说是将生成的dll放到qt的plugins\designer目录下,将插件的.h和.cpp文件放到你的工程目录下,编译通过后,可以直接使用qt设计师拖拉到界面使用。插件具体位置在qt设计师的My Plugins组下
QTableWidget表头添加复选框实现全选功能
QTableWidget表头添加复选框实现全选功能。有点投机取巧,但是功能是实现了。实现很简单。
轻量级日志模块,支持纯windows下日志打印或qt环境下日志打印
日志使用c++编写,支持纯windows下日志打印或qt环境下日志打印,采用当前程序名字和当前年月日命名,如果当前文件写到超过最大大小,则新生成一个以当前年月日命名的新文件,如此
1.既保存了旧的文件
2.又不会因为以时间命名而每天生成一个文件导致日志文件个数过多影响查看日志
3.支持文件回滚和备份
qt5.5.7编译出的opencv310动态库
使用qt5.5.7+cmake-3.4.1-win32-x86.exe+opencv310 编译出的opencv310的库
vs2013编译出的opencv310动态库
vs2013编译opencv310开源代码,编译出的opencv310动态库
opencv310动态库
使用qt5.5.7+cmake-3.4.1-win32-x86.exe+opencv310 编译出的opencv310的库
qt编译出的db2和oracle数据库驱动(qt5.5.0+vs2013)
使用qt5.5.0+vs2013编译出的db2和oracle的数据库驱动动态库,qt没有自带db2和oracle的数据库驱动库,需要自己手动编译
记录日志到文件
支持写日志到文件,支持日志级别和设置日志最大大小,当超过日志最大大小时,会新生成一个以时间命名的文件。
因获取程序名和互斥锁,用了qt类,如果不想包含qt,可以使用另外的程序名和基于windows或者linux或者boost库的互斥锁
文件起名目的:以当前年月日命名,如果当前文件写到超过最大大小,则新生成一个以当前年月日命名的文件,
新文件如果跟旧文件不在同一天,则不会覆盖旧文件。如此既保存了旧的文件,又不会因为以时间命名而每天生成
一个文件导致日志文件个数过多影响查看日志。(如超过大小,但是还是在同一天,则会继续在当天上写。如日志写的很快,则时间可以详细到
分和秒,这样就不会超过大小还是在同一文件)