自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (12)
  • 收藏
  • 关注

原创 [转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃

[转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束。并且发送报告,去掉了系统默认的发送报告的对话框。所以一拍脑袋,想让自己的程序崩溃的体面一点。自己想了大概的思路,觉得可以用一个进程来监控目标程序。的确也可以拿到了目标程序崩溃的信息,知道它什么时候崩溃的,也可以做

2020-12-07 14:39:43 478 1

原创 docker安装方法

docker安装方法,参考下面网站:https://get.docker.com/简单方法,执行:# This script is meant for quick & easy install via:# $ curl -fsSL https://get.docker.com -o get-docker.sh# $ sh get-docker.sh## For test builds (ie. release candidates):# $ curl -fsSL

2020-11-16 16:49:50 159

原创 VS编译器#pragma指令用法汇总

#pragma用于指示编译器完成一些特定的动作 #pragma所定义的很多指示字是编译器特有的 #pragma message:用于自定义编译消息 #pragma once:用于保证头文件只被编译一次 #pragma pack:用于指定内存对齐方式 #pragma prompt:用于输出编译提示...

2020-07-15 12:49:56 857

原创 cmake 使用注意事项

1. cmake不是所有变量都能在cmakelist文件里面设置的,可以尝试调用cmake命令的时候传递参数,如:cmake -DCMAKE_CXX_FLAGS_RELEASE="-O0 -DNDEBUG" -DCMAKE_BUILD_TYPE=Release .

2020-07-01 18:11:54 296

原创 VMware windows系统上文件拷贝原理(linux应该类似,拖拽应该也类似)

#include <Windows.h> #include <shlobj.h> IDataObject *pDataObj = NULL; OleGetClipboard(&pDataObj); if (pDataObj) { FORMATETC etc; STGMEDIUM stgMedium; // 这两步操作才会触发文件的下载操作(不调用这两个,不会触发文件下载) ...

2020-07-01 11:25:30 4623

原创 GCC编译参数记录

1.如果想隐藏链接的静态库导出的符号-Wl,--exclude-libs,ALL2.默认情况下,GCC/G++链接时优先链接动态库,如果没有动态库,则链接相应的静态库。同时,GCC/G++也提供了链接选项 -Wl,-Bstatic 和 -Wl,-Bdynamic 供用户指定链接动态库或者静态库。3.表示强制采用本地的全局变量定义-Wl,-Bsymbolic-Wl,...

2019-12-26 16:47:58 1406

原创 链接C++库为了在不同环境运行,可以使用静态链接

不同系统的gcc运行环境版本可能不一致,导致相同的平台却运行时报错(/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found),这种情况可以考虑静态链接c++库,方法:添加链接选项:-static-libstdc++...

2019-11-28 17:09:39 189

原创 获取线程独有数据方法 (POSIX标准方法)

static pthread_once_t current_thread_data_once = PTHREAD_ONCE_INIT;static pthread_key_t current_thread_data_key;static void destroy_current_thread_data(void *p){ printf("func: %s\...

2019-05-06 15:35:32 251

原创 Qt 用法使用注意事项 (长期更新)

1.不要阻塞Qt的事件处理函数,某些个别特殊的除外!(比如:contextMenuEvent)原因: 阻塞Qt的事件处理函数,可能导致当前事件的后续的事件处理流程错误。2. 在使用VS编译器编译的时候,如果报错:(一般是带有中文,错误原因可能是缺少后引号,可以切换查看编码来查看)***.cpp,error: C2001: 常量中有换行符。。。请修改(报错的)源文件编码为AN...

2019-04-28 13:09:26 871 1

原创 Qt 日志打印系统用法说明

写应用程序免不了需要使用日志来记录或者调试一些信息,Qt一个这么大的框架,当然免不了集成了一套日志输入的框架,那就是QLoggingCategory 。废话不多说,直接说用法:可能常用的qDebug() qWarning等,但是不推荐,改用:qCDebug(),qCWarning(),qCCritical()等,为什么呢?因为这系列接口提供了一个额外的参数来指明是哪个模块的日志。...

2019-04-25 15:46:13 1242

原创 Qt quick模块的Qt4到5的迁移

由于Qt5模块组合上和Qt4有了较大的改变,一些模块Qt4有但是Qt5已经没有了,但是有替代的模块,为了方便代码的迁移,记录这个网站:https://doc.qt.io/qt-5/qtquick-porting-qt5.html详细请看官方迁移的说明。...

2019-04-25 08:45:46 150

原创 Qt在源文件中使用 Q_OBJECT宏定义类的注意事项

如果在头文件中使用Q_OBJECT宏,Qt的moc编译器会自动搜索到,不需要你去额外处理。但是如果你在源文件里面定义继承QObject的类的时候,使用Q_OBJECT宏,就需要你自己告诉Qt需要对这个文件进行moc处理。需要在该文件的末尾加上这样一句话:#include "该文件名.moc" // 文件名不包含后缀...

2019-04-23 17:09:40 1305

原创 values.h 替换为 float.h

values.h is an old UNIX standard file it was documented in issues 1 and 2 of the X/Open Portability Guide. float.h was standardized in ANSI C in 1989 and had become widely used before then. values.h w...

2019-01-22 21:24:21 362

原创 编译weston fb后端最小依赖配置命令

./autogen.sh --disable-egl --disable-x11-compositor --disable-drm-compositor --disable-wayland-compositor --disable-headless-compositor --disable-xwayland --disable-fullscreen-shell --disable-ivi-shel...

2019-01-22 15:25:17 763

原创 Wayland协议解析 五 Wayland窗口创建流程

2018-10-18 09:25:14 2996 5

原创 Wayland协议解析 四 Wayland的所有接口

在介绍这些类的时候我必须给大家把wayland的interface分个类.Global Object, 我把它叫做服务类, 就是提供给客户端各种功能的接口. 就相当于是说,对于客户端来说,我给你提供了哪些服务,你就只能通过这些服务来进行各种操作,因此,服务越多,肯定功能越多.服务类,根据实际情况是不一样的,并且可以根据需要服务端再添加更多的服务,wayland标准提供的服务接口有以下一些:w...

2018-10-18 09:18:39 6197

原创 Wayland协议解析 三 Wayland的工作原理

首先,需要了解wayland的工作原理,需要了解几个其他的内容。int mkstemp(char *template); // 创建临时文件 (标C接口) long int strtol(const char *nptr,char **endptr,int base); // 字符串转数字 ssize_t sendmsg (int s, const struct msghdr *msg, ...

2018-10-18 09:17:11 3990

原创 Wayland协议解析 二 Wayland中的数据结构解析

为了更好的学习wayland,我们可以先学习wayland中定义的一些数据结构.因为贯穿wayland的所有东西都是基于这些数据结构. 首先介绍wl_arraystruct wl_array {/** Array size */size_t size;/** Allocated space */size_t alloc;/** Array data */void ...

2018-10-17 19:26:52 2766

原创 Wayland协议解析 一 什么是Wayland

学习Wayland协议已经好几个月了,期间也查阅了不少资料,奈何目前对于它的资料并不是很多,对他原理以及解析更是寥寥无几,其中有一篇非常不错,给个链接: https://blog.csdn.net/jinzhuojun/article/details/40264449, 需要的可以去查看查看.本文的目的是更加通俗详细的解释wayland协议.好了,废话不多说,下面开始讲述wayland协议.什...

2018-10-17 09:50:01 5106 2

原创 Qt学习记录九之Qt5平台插件创建流程

QGuiApplication::QGuiApplication  构造函数会传入程序启动的全部参数(argc,argv)在构造函数中调用QGuiApplicationPrivate::init() (源代码: d_func()-&gt;init();) 在QGuiApplicationPrivate::init() 函数内部调用QGuiApplicationPrivate::create...

2018-07-27 11:10:19 2128 2

原创 Qt学习记录八

在移植Qt的过程中,经常出现加载插件失败,可以通过添加以下的环境变量,打印更多错误信息,来解决问题:QT_DEBUG_PLUGINS=1

2018-07-24 14:51:10 153

原创 wayland客户端对象创建流程

wl_display_dispatch                  wl_display_roundtrip||                                                             ||||                                                             \/||||         ...

2018-07-05 13:44:50 1408

原创 wayland数据结构之wl_map

struct wl_map { struct wl_array client_entries; struct wl_array server_entries; uint32_t side; uint32_t free_list;};struct wl_array { /** Array size */ size_t size; /** Allocated space */ size_t alloc...

2018-07-05 13:38:53 381

原创 wayland数据结构之wl_array

struct wl_array { /** Array size */ size_t size; /** Allocated space */ size_t alloc; /** Array data */ void *data;};数组结构体:data保存实际的数据,size保存实际数据的大小,alloc保存当前data总共分配的大小(malloc/realloc分配的大小)。其中,alloc总...

2018-07-05 13:37:05 324

原创 Wayland协议解析

Wayland协议解析 一 什么是WaylandWayland协议解析 二 Wayland中的数据结构解析Wayland协议解析 三 Wayland的工作原理Wayland协议解析 四 Wayland的所有接口Wayland协议解析 五 Wayland窗口创建流程...

2018-05-28 18:31:55 3344 1

原创 Wayland 协议解析工具代码(Qt 将wayland协议转换为C++接口,我把函数功能也识别进去,更方便通过生成的文件阅读wayland协议)

/******************************************************************************** Copyright (C) 2015 The Qt Company Ltd.** Contact: http://www.qt.io/licensing/**** This file is part of the tools appli...

2018-05-11 11:20:36 840

原创 Qt学习记录七

在使用Qt作为界面开发有个好处,就是Qt有个机制可以使界面语言翻译成不同国家的语言,这就是Qt国际化。Qt国际化使用的方式:1. 首先是把所有需要翻译的字符串都用tr()包起来,因为Qt会在加载的时候通过这个调用去判断是否是需要翻译的字符串,另外也可以使用QTranslator::translate函数翻译。2.然后需要在pro文件里面指定一个 ts文件,在编译的时候就会把需要翻译的字符串生成到t...

2018-04-04 09:23:24 186

原创 通过宏把数字版本号转换成字符串版本号

#define MAJOR 1#define MINOR 1#define PATCH 1#define NUM2STR(num) #num#define VERSTR4NUM(ma,mi,pa) NUM2STR(ma)"."NUM2STR(mi)"."NUM2STR(pa)#define VERSION_STR VERSTR4NUM(MAJOR,MINOR,PATCH)

2018-03-05 17:17:15 1068

转载 dlopen 打开依赖本应用程序的某些函数的库时的注意事项

原文地址: http://blog.csdn.net/lp525110627/article/details/53148605一、“--export-dynamic”参数的使用GCC编译可执行文件时可以使用-Wl,--export-dynamic参数,此时链接器产生可执行文件时会将所有全局符号导出到动态符号表。gcc -Wl,--export-dynam

2018-01-31 16:46:11 1060

原创 程序异常处理

#include #include #include // 异常信号处理函数void errHandle(int sig){    // 信号发生了    printf("There is a mistake!\n");    ::exit(-1);}int main(int argc, char *argv[]){// 注册异常信号处理函数    signal(SI

2018-01-23 18:57:52 205

原创 SylixOS 系统移植库第三方库流程 (其他系统交叉编译应该类似)

第一步如果是用autotool工具配置的项目,使用以下脚本配置:#!/bin/shexport CC=arm-sylixos-eabi-gccexport CXX=arm-sylixos-eabi-g++export SYLIXOS_BASE_PATH=/home/rootqt/SylixOS/sylixos-baseexport LDFLAGS="-mcp

2017-12-19 11:01:26 842

转载 Qt学习记录六

参考:http://blog.csdn.net/hong_chase/article/details/73379122Qt 程序release版本的log获取不到文件信息、行数等信息,原因是:文件信息、行数等信息在Release版本默认舍弃。我们只要在.pro文件定义一个宏:DEFINES += QT_MESSAGELOGCONTEXT

2017-12-14 15:35:06 189

原创 Qt学习记录五

QT 自己激活自己的方法: actWin->raise(); actWin->activateWindow(); actWin->setWindowState(actWin->windowState() | Qt::WindowMinimized); actWin->setWindowState(actWin->windowState(

2017-08-28 15:01:56 233

原创 QT学习记录四

对于QTreeView 的一些效果设置:setAllColumnsShowFocus(true); // 使选择一行所有列setFocusPolicy(Qt::NoFocus); // 去掉虚线选择效果

2017-08-21 09:39:47 264

原创 QT学习记录三

QString 转换宽字符串QString filePath;reinterpret_castconst wchar_t *>(filePath.utf16());

2017-08-04 09:53:15 188

原创 QT学习记录二 (windows窗口创建过程)

最开始了解QT的时候,以为窗口的创建是在new那个窗口对象的时候,但了解一些之后才知道,原来不是。直接看下面函数调用过程,可以让你对QT更加了解:QWidget::show()||\/QWidget::setVisible(bool visible)||\/QWidget::create(WId window, bool initializeWindow, bool destroy...

2017-07-31 14:13:30 1164

原创 QT 配置命令

// QT编译选项(静态编译)./configure -static -release -confirm-license -opensource -nomake examples -nomake tests -prefix /home/rootqt/Qt5.8.0_static// QT编译选项(动态链接)./configure -release -confirm-licens

2017-06-09 10:01:42 291

转载 QT转换字节大小为最接近的大小单位

QString humanReadableSize(const qint64 &size, int precision){ double sizeAsDouble = size; static QStringList measures; if (measures.isEmpty()) measures QCoreApplication::tra

2017-05-23 15:44:08 1894

原创 解决VM安装Ubuntu16.10卡在open-vm-tools (VM Ubuntu 快速进入命令行模式:ctrl+alt+f1)

目前的解决方式:1、编辑配置文件 (.vmx)2、增加一行 cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101"3、保存配置文件4、启动虚拟机或者换虚拟机,比如virtualbox之类的。

2017-05-18 16:57:36 26623 8

原创 QT学习记录一

好了,现在开始记录我学习QT的学习历程 。本人也不是计算机专业出来的,自学了一点,但还是不好找工作,于是参加了培训,虽然感觉没多学到什么编程的学习生涯就是不断的看别人的源码,然后自己参考着写写自己的,把别人的好东西收集起来,等自己某一次需要的时候,知道有这个技巧可以用,就非常完美了。在我看来,很多的技术什么的,说的漂亮,其实用技巧来描述更合适,也没什么真正的技术含量,只是你想不到,是吧,哈

2017-05-15 09:16:46 3454

Qt实现屏幕GIF录制工具(源码)

基于Qt的屏幕录制工具,简单方便。可以制作图片gif. 请下载之后pull下git会有最新的支持。 功能说明: 1. 可以通过窗口右下角拉动窗口大小,或者直接修改宽高框内数据精确修改窗口大小。 2. 设置录制频率。 3. 点击录制即可开始(随即按钮变为停止按钮) 4. 点击退出,退出应用程序。 最新功能: 1. 可以选择已有的图片来制作gif图片。 2. 在windows上可以录制带鼠标光标的gif。 3. 窗口可以缩的更小。

2019-05-04

Qt实现屏幕GIF录制工具

基于Qt的屏幕录制工具。用法简单,一看就会。源码:https://download.csdn.net/download/xiaoyan_yt/11158320 另外:这个工具有更新的,可以通过源码自己编译(git更新一下)

2019-05-04

Qt实现中文输入法面板(集成谷歌输入法核心)-源码

Qt实现中文输入法面板,适合嵌入式设备输入,也能在windows上跑,效果还不错,输入核心有两种,一种是google的内核一种是我基于数据库实现的。体验程序:https://download.csdn.net/download/xiaoyan_yt/10634438

2018-08-29

Qt实现中文输入法面板(集成谷歌输入法核心)-可执行程序

Qt实现中文输入法面板,适合嵌入式设备输入,也能在windows上跑,效果还不错,输入核心有两种,一种是google的内核一种是我基于数据库实现的。源码:https://download.csdn.net/download/xiaoyan_yt/10634443

2018-08-29

Qt5翻译源码翻译文件(解决QTextEdit没有翻译的版本)

Qt翻译源码翻译文件(解决QTextEdit没有翻译的版本) // Qt中文翻译 QTranslator qtTranslator; { QDir dir(qApp->applicationDirPath() + "/translations"); dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); QFileInfoList list = dir.entryInfoList(); QLocale locale; locale.uiLanguages(); if (locale.uiLanguages().contains("zh-CN", Qt::CaseInsensitive) || locale.uiLanguages().contains("zh_CN", Qt::CaseInsensitive)) { qtTranslator.load(qApp->applicationDirPath() + "/zh.qm"); a.installTranslator(&qtTranslator;); for (int i = 0; i < list.size(); ++i) { if (list.at(i).fileName().contains("zh_CN")) { qtTranslator.load(list.at(i).filePath()); a.installTranslator(&qtTranslator;); break; } } } }

2018-03-26

Qt实现中国象棋(支持局域网对战,混战,内置中文输入法)--源码

Qt实现的中国象棋客户端,支持局域网内的对战,人机对战,混战 可执行程序路径:http://download.csdn.net/download/xiaoyan_yt/10263332

2018-02-28

Qt实现中国象棋(支持局域网对战,混战,内置中文输入法)--可执行程序

Qt实现的中国象棋客户端,支持局域网内的对战,人机对战,混战 源码路径:http://download.csdn.net/download/xiaoyan_yt/10263338

2018-02-28

QT实现图片的简单编辑工具,支持多种图形绘制,支持图元的简单缩放,旋转。(源码)

QT实现图片的简单编辑工具,支持多种图形绘制,支持图元的简单缩放,旋转。 源码路径:https://github.com/xiaoyanLG/Draw-Tool

2017-12-19

QT实现图片的简单编辑工具

QT实现图片的简单编辑工具,支持多种图形绘制,支持图元的简单缩放,旋转。

2017-12-07

Qt实现windows全屏弹幕工具(可执行程序)

Qt实现windows全屏弹幕工具(可执行程序),源码可查找:http://download.csdn.net/download/xiaoyan_yt/10128606

2017-11-22

QT实现windows全屏弹幕程序(源码)

QT实现windows全屏弹幕程序源码,可以指定各种弹幕设置。可执行程序地址: http://download.csdn.net/download/xiaoyan_yt/10128612

2017-11-22

QT实现中文输入法程序

QT实现的内置应用的输入法,在嵌入式程序上使用比较有意义!

2017-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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