C++
stafniejay
这个作者很懒,什么都没留下…
展开
-
Qt QEventLoop 与 Android Looper 实现消息循环简单对比分析
QEventLoop 与 Looper 功能基本相同,实现方式大致也相同,都可以在线程中开启一个消息循环,分发消息。下面对比两种结构实现消息派发的实现方式。1.QEventLoop 和 Looper 每个线程中都只能有一个。2.消息队列 每个线程都有一个消息队列,Qt的消息队列在QThredData中保存,QThredData中还保存一个QEventDispatcher用来派发消息, Looper的消息队列直接保存在looper中。3.添加消息 Qt使用QA...原创 2021-05-22 11:55:42 · 363 阅读 · 0 评论 -
libevent 实现简单局域网软件更新服务器
依赖libevent与qt,使用了qt中的一些工具类。DataStream,ByteArray来格式化tcp传输的数据,还有xml解析。没有使用qt的时间循环。客户端使用qt的network库写的。一. 更新过程1.服务端程序下建一个ManagerdFolder文件夹,把需要更新的程序放进去,可以放多个。搞个配置文件配置可以更新的文件类型。2.待更新的程序启动后调用更新客户端(exe),传入程序名,服务端ip。连接服务器。3.连接成功发送程序的名字,服务端检查是否在托管文件夹...原创 2020-07-08 17:55:58 · 394 阅读 · 0 评论 -
libevent 一种解析tcp包方式
1.首先定义传输协议时要包含包的长度,放在第一个位置。2.使用一个标志标识接收到的数据长度,为0表示可以接收新的包数据。3.在libevent源码中添加一个获取bufferevent接收数据缓冲区中有效的数据大小,加在bufferevent.c 中代码如下:unsigned int buffer_get_validinputbyte(struct bufferevent* bufev){ if (!bufev)return 0; unsigned int byteAvaliable =原创 2020-06-24 15:27:06 · 416 阅读 · 0 评论 -
exe 动态调用dll中函数 引起的莫名奇妙问题
没注意到exe中声明的函数指针与dll中调用约定不同,出现莫名奇妙的问题,release下运行正常,debug下在调用这个函数退出后,下条语句崩溃,调试了好久,无意中看到网上一句话受到启发,exe与dll函数调用约定不同会引起esp指针混乱,仔细一想stdcall与cdecl清理栈的方式不同,确实可以导致函数执行过后下条语句崩溃,仔细检查一下调用约定确实不一样。找原因找的头晕脑胀,一直以为误用pp...原创 2020-03-13 17:33:31 · 300 阅读 · 0 评论 -
qt 使用gtest测试gui的一种方式
1.下载编译gtest,地址:https://github.com/google/googletest.git2.找到gtext文件夹下msvc文件夹,vs打开,编译静态库,运行时库貌似要选择/MD动态链接,不然后续使用会出问题3.将include,编译好的lib库放在一个项目经常使用的位置,可以设置个环境变量4.创建Qt控制台程序,选择QTest,QtCore,QtGui。将mian...原创 2019-07-25 10:44:41 · 1822 阅读 · 0 评论 -
windows 下 python调用Qt C++( PyQt5 + sip4.19)
1.首先编译sipwindows下使用nmake编译,进入vs工具 x86 Native Tools Command Prompt for VS 2015进入sip目录,依次输入python configure.py --platform win32-msvc2015nmakenmake install成功后python目录下会生成sip.exe,sip.pyd等2....原创 2018-08-17 17:33:42 · 1181 阅读 · 0 评论 -
C常用语句 汇编对照表
backup函数栈初始化00B92340 push ebp 00B92341 mov ebp,esp 00B92343 sub esp,0E4h 00B92349 push ebx 00B9234A push esi 00B9234B push edi 00B9234C l...原创 2018-07-13 16:38:51 · 1582 阅读 · 0 评论 -
Qt 调用微软认知 语音识别服务
最近需要验证一下语音,测试了微软的离线在线这些,测试微软认知语音识别服务遇到一些问题,记录一下;第一步需要在微软认知服务网站上订阅一个试用码。第二部获取ToeknPOST https://api.cognitive.microsoft.com/sts/v1.0/issueTokenContent-Length: 0Ocp-Apim-Subscription-K原创 2016-12-16 16:54:37 · 2008 阅读 · 0 评论 -
QTcpsocket 使用 模板
常用代码,在这里记录一下,方便以后查找客户端Client.hifndef CLIENT_H#define CLIENT_H#include #include #include #include class Client:public QObject{ Q_OBJECTpublic: Client(QString ip,int port); ~Clie原创 2016-06-17 14:12:21 · 1347 阅读 · 2 评论 -
Qt日志类 使用方便,支持多线程,可以注册回调在程序异常时给出通知
log.h#ifndef PLAINLOG_H#define PLAINLOG_H#include <QFile>#include <QMutex>#include <QDateTime>#include <QTextStream>#include <stdio.h>#include <QObject&g...原创 2016-06-17 13:56:40 · 1688 阅读 · 0 评论 -
windows 下简单的定时器 源码加 例子
//windows 下queuetimer 封装,不依赖窗口#pragma once#include static void CALLBACK TimerProc(void*, BOOLEAN);/////////////////////////////////////////////////////////////////////////////////// class CTime转载 2015-09-11 15:09:13 · 418 阅读 · 0 评论 -
setsockopt
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,转载 2015-07-01 16:24:53 · 367 阅读 · 0 评论