自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阳光柠檬_的技术笔记

养成记录笔记的好习惯

原创 2.COM接口

2.1 再谈接口与实现其实从上一章“COM是个更好的C++”可以看出,COM最重要的就是将接口与实现分离。上一章中接口定义头文件中采用C++抽象类的形式,如果调用方是C++环境当然不会有问题。但如果调用方不是C++的编译环境呢?为了把“接口定义”与“特定实现过程所用到的语言”之间的关联尽可能的断开,我们必须把这两项分离开来,如果所有参与的各方统一使用一种语言(而非C++抽象基类)来定义接口,...

2020-01-31 22:33:06 77

原创 1. COM是一个更好的C++

看COM本质论做的总结1.1 软件分发和C++class FastString { char* m_psz;public: FastString(const char *psz); ~FastString(); int Length(void) const; int Find(const char *psz)const;};#include "faststring.h"#i...

2020-01-31 22:30:33 119

原创 Docker基础操作

安装curl时报错curl : Depends: libcurl3-gnutls (= 7.47.0-1ubuntu2.12) but 7.58.0-2ubuntu3.6 is to be installedsudo apt-get purge libcurl3-gnutlssudo apt-get install curl安装dockercurl -fsSL get.docker....

2019-12-22 13:25:48 67

原创 Ubuntu下使用docker部署WordPress

Ubuntu下使用docker部署WordPressdock安装环境dock安装环境sudo docker pull mysqldocker run -di --name lk-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysqldocker exec -it lk-mysql /bin/bash# mysql -u root -p...

2019-12-21 23:57:19 135

原创 QByteArray中的中文(GBK/UTF-8)转成unicde(中文乱码处理)

从文件里读入一段文字到QByteArray, 有的文字中文是GBK的,转成QStringtext = QTextCodec::codecForName("GBK")->toUnicode(ba);有的文字中文是UTF8的,转成QStringtext = QTextCodec::codecForName("UTF-8")->toUnicode(ba);但有时你又无法...

2018-07-10 15:13:36 3577 2

原创 解决windows下gitk代码diff中文乱码

修改gitconf ( C:\Program Files\Git\mingw64\etc\gitconfig ) 在末尾加上如下配置:[gui] encoding = utf-8[i18n] commitencoding = utf-8

2018-07-02 11:01:17 777 1

原创 gloox注册、登录、登出、消息收发的实现(IM客户端)

Gloox的资料实在太少,官方包里有example,但每个用法示例的注释也没有。在反复阅读example下的代码,组合,基本实现了用户的注册、登录、登出 以及 消息的发送与接受。主要参考 register_example.cpp 与 message_example.cpp 封装了一个类Gloox Gloox.h#ifndef GLOOX_H#define GLOOX_H#include "glo

2018-05-09 16:46:13 1017 2

原创 openfire环境搭建(IM服务器)

windows上安装openfire 下载地址:http://www.igniterealtime.org/downloads/index.jsp 我下载的openfire_4_2_3_bundledJRE.exe 32-bit (Includes 32-bit Java JRE) 因为我电脑上没有java运行环境,用这个包可以帮助我安装java,以免我还要配置java环境。 下载后完成安装

2018-05-08 17:50:59 2608

原创 Linux下beego环境快速搭建

先安装golang环境//创建目录,将作为GOPATH,为以后的代码工作目录mkdir -p ~/goPro/binmkdir -p ~/goPro/src//安装golang$ sudo apt-get install golang//修改~/.profile 配置环境变量$ vi ~/.profile//在底部增加以下内容export GOROOT=/usr/...

2018-05-04 18:21:37 3163

原创 用Apache ab测试TreeFrog并发负载

打开Linux下的8800 端口防火器限制:sudo /sbin/iptables -I INPUT -p tcp --dport 8800 -j ACCEPTApache ab并发负载压力测试 ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载。下载httpd-2.2.21-win32-x86-no_ssl.msi,安装...

2018-05-04 14:46:15 285

原创 基于Qt/C++Web后台MVC框架TreeFrog(帮助文档)

网上搜了一些关于TreeFrog的博文,少有是自己原创的,大多都是直接复制的官方的中文文档。下面列出几个主要框架的帮助文档。以方便后期查阅:controller层: https://github.com/treefrogframework/treefrog-framework/blob/master/docs/ch/user-guide/controller/index.mdmodel层: ht

2018-05-04 10:13:04 538

原创 基于Qt/C++Web后台MVC框架TreeFrog(新增一个请求模块)

基于上篇博文:https://blog.csdn.net/liukang325/article/details/80166932 已经搭建起一个工程,可以访问 http://localhost:8800/blog 等一系列/blog/下的请求页面。 而且这个代码都是通过 tspawn scaffold blog 命令,根据数据库表进行生成的代码, 如果我现在自己建一个请求,只是处理一般数据逻...

2018-05-03 17:41:32 785 1

原创 基于Qt/C++Web后台MVC框架TreeFrog(环境搭建)

官方网站: http://www.treefrogframework.org/en/download/ 这里环境是Linux,下面所有的命令都针对Linux环境。参考官方文档:http://www.treefrogframework.org/en/user-guide/tutorial/1 . 安装TreeFrog Framework框架的依赖库:sudo apt-get ins...

2018-05-02 15:14:57 2578

原创 QtConcurrent多线程处理

QT中有用QThread处理线程,用法也有多种。以前写过一篇: https://blog.csdn.net/liukang325/article/details/50454409后来发现QtConcurrent也很好用。 需要先在pro中加入模块 QT += concurrent 下面是一个官方的例子:#include <QApplication>#include <QDebug>#in

2018-04-29 17:42:39 1760

原创 QProcess 启用CMD,实现交互多次执行读写指令

workThread.h#ifndef WORKTHREAD_H#define WORKTHREAD_H#include <QObject>#include<QThread.h>#include<QString.h>#include<Qthread.h>#include <QDebug>#define QDBG qDebug()<<__FILE__<<__FUNCTION__<<"():

2018-03-29 16:01:26 2762 1

原创 基于curl C++简单的get/post封装

基于curl简单的get/post封装#include &amp;lt;curl.h&amp;gt;#include &amp;lt;memory&amp;gt;static size_t string_write(char *ptr, size_t size, size_t nmemb, std::string &amp;amp;str){ size_t total = size * nmemb; if (t...

2018-03-16 18:23:37 874

原创 Nginx + FastCgi + C++实现web后台

用python写过后台服务器,现在的团队项目用的nginx + php写后台,用Nodejs也能写Web服务,用golang也能写后台。一直觉得万能的C++无所不能,那用C++开发后台的为啥几乎没有呢?网上搜了一下,大多说C++需要较高的技术门槛,从底层开始自己造轮子,没有很好的直接能用的标准库等等。不过我还是抱着试一试的心态打算用C++架一个后台服务框架。环境是linux下运行,只是...

2018-03-13 12:06:13 2595

原创 android adb 模拟点击、滑动、输入、按键

//模拟输入“001” adb shell input text “001”//模拟home按键 adb shell input keyevent 3//模拟点击(540, 1104)坐标 adb shell input tap 540 1104//模拟滑动,从(250,250)滑动到(300,300) adb shell input swipe 250 250 300 300keyeven

2018-02-06 10:44:22 26233 2

原创 uiautomator快速获取android画面UI元素

想要获取android手机屏幕上某个地方的文字内容,起初还想着获取手机屏蔽画面,然后用图像文字数字识别的方法来获取图中文字的内容。 后来知道 用uiautomator 可快速分析到android手机应用的UI元素,这样就没此前想的用图像识别那么复杂了。还有一个ui工具可分析UI元素,uiautomatorviewer 从哪找,怎么打开,怎么用?起初进行了一翻摸索,去除弯路,最后总结一下。 从官

2018-02-06 10:06:30 8944 1

原创 用ffmpeg.exe截取视频文件中的一帧画面

输入的视频流源地址,可以是文件或者rtsp地址等; -i D:\test.mp4默认1s截取25张图片,可以通过-r设置每秒截取的图片数量 -r fps 设置帧率,也就是每秒截取图片的数量(默认25)ffmpeg.exe -i D:\test.mp4 -f image2 -an -r 1 D:\pic\%10d.jpg 这样子每1s截取1张图片还可以设置截取间隔,起止 -ss 设定时间位置

2018-02-04 17:16:40 2151

原创 Ubuntu下Git版本更新

在ubuntu下安装git: sudo apt-get install git 但在不同的源一安装的git的版本也不一样 遇到需要更高版本的git 时,就需要将已安装的git升级版本 用下面几个命令即可sudo add-apt-repository ppa:git-core/ppasudo apt-get updatesudo apt-get install git

2018-01-28 20:20:41 5462

原创 C++类头文件不暴露私有变量的一种写法

在类的头文件中不暴露私有变量,目的一般有两个: 1. 提供给别人的dll对应的头文件中,不希望在头文件中暴露私有变量的名称; 2. 因为私有变量的类型需要包含另一个头文件,所以不希望在头文件中包含其它头文件;一般可以用下面的方法来隐藏私有变量。 TWebSocketServer.hclass TWebSocketServer{public: TWebSocketSe

2018-01-26 14:52:19 1829 1

转载 How To Install Java with Apt-Get on Ubuntu 16.04

转载自: https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04IntroductionJava and the JVM (Java’s virtual machine) are widely used and required for many kinds o

2017-12-17 12:10:45 277

原创 Nginx&C++实现简单的fastcgi程序

1. 安装spawn-fcgi (FastCGI进程管理器)spawn-fcgi是一个通用的FastCGI进程管理器,简单小巧,原先是属于lighttpd的一部分,后来由于使用比较广泛,所以就迁移出来作为独立项目了。spawn-fcgi使用pre-fork 模型,功能主要是打开监听端口,绑定地址,然后fork-and-exec创建我们编写的fastcgi应用程序进程,退出完成工作。fastcgi应用

2017-12-12 16:12:19 1335 1

原创 基于Nginx新增实现自己的HTTP模块

创建文件夹 nginx-test-module , 和nginx-1.9.15同级目录。nginx-test-module目录中创建 ngx_http_lktest_module.c 和 config ngx_http_lktest_module.c#include <ngx_config.h>#include <ngx_core.h>#include <ngx_http.h>//请求包体接收完

2017-12-08 14:28:44 337

原创 Qt程序自动重启的实现

正常退出调用exit() 或quit()就行,想要自已重启可按下面代码:void XXX:onRestart(){ //类中调用 qApp->exit(888);}主main函数中处理int main(int argc, char* argv[]){ QApplication app(argc, argv); QWidget widget; wid

2017-11-24 15:21:31 1594 1

原创 C++启动其它exe程序的代码

先取到所要启动exe的绝对路径,比如: C:\Test\update.exe 也要得到exe所存在的目录路径,比如: C:\Test1.先用Qt实现QString path = "C:\\Test\\update.exe";QString runPath = "C:\\Test";QProcess *process = new QProcess;process->setWorkingDirec

2017-11-22 09:22:13 7736

原创 error LNK2038: 检测到“RuntimeLibrary”的不匹配项的解决办法

编译cef_binary_3.3112.1659.gfef43e0_windows32,生成了一个libcef_dll_wrapper.lib,供另一个工程所用。结果编译的时候报错。 错误信息如下: 1>libcef_dll_wrapper.lib(ImfTiledRgbaFile.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_St

2017-11-20 17:41:55 14547 2

原创 Unity3D学习笔记4-五子棋实战项目知识点总结

Button的点击事件处理: StartButton.onClick.AddListener(() => { …… });using UnityEngine;using UnityEngine.UI;using System.Collections;public class Title : MonoBehaviour { public Button StartButton; pu

2017-10-27 20:37:52 670

原创 Unity3D学习笔记3-响应用户输入

学习本节前,先了解一下三维向量的基本概念,xyz三轴,就是学立体几何时的三维坐标图,x轴箭头向右,y轴箭头向上,z轴箭头向前。由此便有unity3D中的以下几个概念 zero :写Vector3(0, 0, 0)的简码。 one :写Vector3(1, 1, 1)的简码。 forward :写Vector3(0, 0, 1)的简码,也就是向z轴。 up :写Vector3(0, 1, 0)

2017-10-26 21:43:56 367

原创 Unity3D学习笔记2-应用脚本控制物体运动

在Assert/Script下创建新的C# Script,命名后会自动生成类,自动继承于MonoBehaviour类。增加简单的代码实现物体移动: TestPlayer.csusing System.Collections;using System.Collections.Generic;using UnityEngine;public class TestPlayer : MonoBehav

2017-10-26 21:21:51 2337

原创 Unity3D学习笔记1-角色控制

总结笔记来自于视频教程:http://www.imooc.com/video/7333脚本基础Unity里可以使用C#和UnityScript在Unity里面凡是能挂在GameObject上的都是ComponentScript也可以作为一个ComponentScript要想挂在GameObject上就必须继承MonoBehaviour类Unity如何通过脚本来驱动游戏Instantiat

2017-10-26 20:39:56 271

原创 用WinRAR将exe与所依赖的dll与资源打包成一个exe

了解此方法,是来源于想打包cocos的程序为一个exe。于是了解到了还有一种如此便捷的方法,就是用winRAR打包工具。将要发布的exe与dll以及其它资源文件都放到一个文件夹中压缩成rar,最好用自带的WinRAR这个工具,而不是2345好压等这样的。压缩好后,双击打开rar文件,点击自解压格式 点击高级自解压选项 设置—-解压后运行里写入HeyAD.exe(写你要执行的文件) 模式—-打钩解

2017-10-22 15:22:30 3242 4

原创 cocos2d-x学习-环境入门

最近了解了一下cocos,可用C++开发,跨平台的游戏引擎。 从官网下载了目前最新的cocos2dx-3.16版本,了解到cocos较之前老的版本改动还是比较大的。cocos-studio看不到了,新出来的cocos-creator不支持C++。从一些开源的游戏demo中了解了一些代码架构,有一些后缀文件如.atlas, .json, .plist, .tps, .tsx, .tmx 还不清楚是咋

2017-10-18 11:23:06 363

原创 自己用纯C++实现简单的QT中信号与槽机制

前天在我很久以前的一篇博文 (http://blog.csdn.net/liukang325/article/details/45742675) 中有人回复说看到我的博文很激动,希望我详细介绍一下信号与槽的机制,想自己通过回调实现一下。我写的博客能帮助到你我也很激动!~所以就依我自己的理解简单实现一下供你参考~只是一个最简单的信号。并没有实现 QT中信号还带参数传递的功能。想要更深入的理解,可以

2017-10-02 16:56:52 1901

原创 Qt中将一张图片剪裁成圆形图显示

QLabel上显示图片可以有很多种方法。将一张正方形的图贴到label上,并显示成圆形,如何做到呢? 这里用的QPixmap类 实现一个API:static QPixmap PixmapToRound(QPixmap &src, int radius){ if (src.isNull()) { return QPixmap(); } QSize size(

2017-10-02 12:08:48 4460 1

原创 QNetwork封装的一个get/post类

此代码应该是从Github上借鉴过来的类,封装的不错,可以直接使用get和post请求。也可以实现一些简单的下载请求。NetworkHelper.h#ifndef NetworkHelper_h_#define NetworkHelper_h_#include <QObject>#include <QNetworkReply>#include <QTimer>#define LimitTim

2017-10-01 21:37:41 1603

原创 flandmark人脸检测库的用法

之前用dlib库检测人脸的68个特征点,虽然特征点比较准确,但如果被检测图片比较大,效率就比较低。而且脸部模型数据文件shape_predictor_68_face_landmarks.dat有95MB太大了。后来发现flandmark这样一个轻量级的人脸检测库,大概只有5MB左右。检测的特征点少一些,只有8个。不过如果作一般用途,这8个点足够了。下面简单贴出相关代码。 主要参考来自于:http:

2017-10-01 21:01:46 651 2

原创 Qt无边框模态窗口QDialog在点其它窗口时实现闪烁效果

在窗口有边框的情况下,模态窗口推动焦点会自动闪烁。但一般自定义的窗口加了下面这句:this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);隐藏了边框和标题栏。就没有这样的效果了。那么该如何实现呢?先在自定义的QDialog的类中重构bool nativeEvent(const QByteArray &eventType, void *me

2017-09-29 17:20:17 1647

原创 静态网页访问增加密码

静态网页访问增加密码<!DOCTYPE HTML><html lang="zh-cn"><head><meta charset="utf-8" /><title>阳光柠檬</title></head><html> <body> <SCRIPT LANGUAGE="JavaScript"> function password()

2017-09-07 21:37:59 5096 3

提示
确定要删除当前文章?
取消 删除