- 博客(239)
- 资源 (6)
- 收藏
- 关注
原创 2.COM接口
2.1 再谈接口与实现其实从上一章“COM是个更好的C++”可以看出,COM最重要的就是将接口与实现分离。上一章中接口定义头文件中采用C++抽象类的形式,如果调用方是C++环境当然不会有问题。但如果调用方不是C++的编译环境呢?为了把“接口定义”与“特定实现过程所用到的语言”之间的关联尽可能的断开,我们必须把这两项分离开来,如果所有参与的各方统一使用一种语言(而非C++抽象基类)来定义接口,...
2020-01-31 22:33:06
1051
原创 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
1242
原创 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
449
原创 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
924
原创 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
8272
1
原创 解决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
1359
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
1829
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
3626
原创 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
4565
原创 用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
457
原创 基于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
906
原创 基于Qt/C++Web后台MVC框架TreeFrog(新增一个请求模块)
基于上篇博文:https://blog.youkuaiyun.com/liukang325/article/details/80166932 已经搭建起一个工程,可以访问 http://localhost:8800/blog 等一系列/blog/下的请求页面。 而且这个代码都是通过 tspawn scaffold blog 命令,根据数据库表进行生成的代码, 如果我现在自己建一个请求,只是处理一般数据逻...
2018-05-03 17:41:32
1444
原创 基于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
4812
原创 QtConcurrent多线程处理
QT中有用QThread处理线程,用法也有多种。以前写过一篇: https://blog.youkuaiyun.com/liukang325/article/details/50454409后来发现QtConcurrent也很好用。 需要先在pro中加入模块 QT += concurrent 下面是一个官方的例子:#include <QApplication>#include <QDebug>#in
2018-04-29 17:42:39
2557
原创 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
5217
1
原创 基于curl C++简单的get/post封装
基于curl简单的get/post封装#include <curl.h>#include <memory>static size_t string_write(char *ptr, size_t size, size_t nmemb, std::string &str){ size_t total = size * nmemb; if (t...
2018-03-16 18:23:37
1358
原创 Nginx + FastCgi + C++实现web后台
用python写过后台服务器,现在的团队项目用的nginx + php写后台,用Nodejs也能写Web服务,用golang也能写后台。一直觉得万能的C++无所不能,那用C++开发后台的为啥几乎没有呢?网上搜了一下,大多说C++需要较高的技术门槛,从底层开始自己造轮子,没有很好的直接能用的标准库等等。不过我还是抱着试一试的心态打算用C++架一个后台服务框架。环境是linux下运行,只是...
2018-03-13 12:06:13
3684
原创 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
51362
1
原创 uiautomator快速获取android画面UI元素
想要获取android手机屏幕上某个地方的文字内容,起初还想着获取手机屏蔽画面,然后用图像文字数字识别的方法来获取图中文字的内容。 后来知道 用uiautomator 可快速分析到android手机应用的UI元素,这样就没此前想的用图像识别那么复杂了。还有一个ui工具可分析UI元素,uiautomatorviewer 从哪找,怎么打开,怎么用?起初进行了一翻摸索,去除弯路,最后总结一下。 从官
2018-02-06 10:06:30
11700
2
原创 用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
3100
原创 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
7386
1
原创 C++类头文件不暴露私有变量的一种写法
在类的头文件中不暴露私有变量,目的一般有两个: 1. 提供给别人的dll对应的头文件中,不希望在头文件中暴露私有变量的名称; 2. 因为私有变量的类型需要包含另一个头文件,所以不希望在头文件中包含其它头文件;一般可以用下面的方法来隐藏私有变量。 TWebSocketServer.hclass TWebSocketServer{public: TWebSocketSe
2018-01-26 14:52:19
5499
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
374
原创 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
2688
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
576
原创 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
3079
2
原创 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
11293
原创 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
27184
6
原创 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
914
原创 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
775
原创 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
3866
原创 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
417
原创 用WinRAR将exe与所依赖的dll与资源打包成一个exe
了解此方法,是来源于想打包cocos的程序为一个exe。于是了解到了还有一种如此便捷的方法,就是用winRAR打包工具。将要发布的exe与dll以及其它资源文件都放到一个文件夹中压缩成rar,最好用自带的WinRAR这个工具,而不是2345好压等这样的。压缩好后,双击打开rar文件,点击自解压格式 点击高级自解压选项 设置—-解压后运行里写入HeyAD.exe(写你要执行的文件) 模式—-打钩解
2017-10-22 15:22:30
4803
原创 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
540
原创 自己用纯C++实现简单的QT中信号与槽机制
前天在我很久以前的一篇博文 (http://blog.youkuaiyun.com/liukang325/article/details/45742675) 中有人回复说看到我的博文很激动,希望我详细介绍一下信号与槽的机制,想自己通过回调实现一下。我写的博客能帮助到你我也很激动!~所以就依我自己的理解简单实现一下供你参考~只是一个最简单的信号。并没有实现 QT中信号还带参数传递的功能。想要更深入的理解,可以
2017-10-02 16:56:52
4403
1
原创 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
7943
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
2849
原创 flandmark人脸检测库的用法
之前用dlib库检测人脸的68个特征点,虽然特征点比较准确,但如果被检测图片比较大,效率就比较低。而且脸部模型数据文件shape_predictor_68_face_landmarks.dat有95MB太大了。后来发现flandmark这样一个轻量级的人脸检测库,大概只有5MB左右。检测的特征点少一些,只有8个。不过如果作一般用途,这8个点足够了。下面简单贴出相关代码。 主要参考来自于:http:
2017-10-01 21:01:46
1080
1
原创 Qt无边框模态窗口QDialog在点其它窗口时实现闪烁效果
在窗口有边框的情况下,模态窗口推动焦点会自动闪烁。但一般自定义的窗口加了下面这句:this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);隐藏了边框和标题栏。就没有这样的效果了。那么该如何实现呢?先在自定义的QDialog的类中重构bool nativeEvent(const QByteArray &eventType, void *me
2017-09-29 17:20:17
4139
原创 静态网页访问增加密码
静态网页访问增加密码<!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
7488
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人