- 博客(45)
- 资源 (12)
- 收藏
- 关注
原创 [转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
[转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束。并且发送报告,去掉了系统默认的发送报告的对话框。所以一拍脑袋,想让自己的程序崩溃的体面一点。自己想了大概的思路,觉得可以用一个进程来监控目标程序。的确也可以拿到了目标程序崩溃的信息,知道它什么时候崩溃的,也可以做
2020-12-07 14:39:43
637
原创 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
206
原创 VS编译器#pragma指令用法汇总
#pragma用于指示编译器完成一些特定的动作 #pragma所定义的很多指示字是编译器特有的 #pragma message:用于自定义编译消息 #pragma once:用于保证头文件只被编译一次 #pragma pack:用于指定内存对齐方式 #pragma prompt:用于输出编译提示...
2020-07-15 12:49:56
1022
原创 cmake 使用注意事项
1. cmake不是所有变量都能在cmakelist文件里面设置的,可以尝试调用cmake命令的时候传递参数,如:cmake -DCMAKE_CXX_FLAGS_RELEASE="-O0 -DNDEBUG" -DCMAKE_BUILD_TYPE=Release .
2020-07-01 18:11:54
367
原创 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
4734
原创 GCC编译参数记录
1.如果想隐藏链接的静态库导出的符号-Wl,--exclude-libs,ALL2.默认情况下,GCC/G++链接时优先链接动态库,如果没有动态库,则链接相应的静态库。同时,GCC/G++也提供了链接选项 -Wl,-Bstatic 和 -Wl,-Bdynamic 供用户指定链接动态库或者静态库。3.表示强制采用本地的全局变量定义-Wl,-Bsymbolic-Wl,...
2019-12-26 16:47:58
1557
原创 链接C++库为了在不同环境运行,可以使用静态链接
不同系统的gcc运行环境版本可能不一致,导致相同的平台却运行时报错(/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found),这种情况可以考虑静态链接c++库,方法:添加链接选项:-static-libstdc++...
2019-11-28 17:09:39
239
原创 获取线程独有数据方法 (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
298
原创 Qt 用法使用注意事项 (长期更新)
1.不要阻塞Qt的事件处理函数,某些个别特殊的除外!(比如:contextMenuEvent)原因: 阻塞Qt的事件处理函数,可能导致当前事件的后续的事件处理流程错误。2. 在使用VS编译器编译的时候,如果报错:(一般是带有中文,错误原因可能是缺少后引号,可以切换查看编码来查看)***.cpp,error: C2001: 常量中有换行符。。。请修改(报错的)源文件编码为AN...
2019-04-28 13:09:26
973
1
原创 Qt 日志打印系统用法说明
写应用程序免不了需要使用日志来记录或者调试一些信息,Qt一个这么大的框架,当然免不了集成了一套日志输入的框架,那就是QLoggingCategory 。废话不多说,直接说用法:可能常用的qDebug() qWarning等,但是不推荐,改用:qCDebug(),qCWarning(),qCCritical()等,为什么呢?因为这系列接口提供了一个额外的参数来指明是哪个模块的日志。...
2019-04-25 15:46:13
1329
原创 Qt quick模块的Qt4到5的迁移
由于Qt5模块组合上和Qt4有了较大的改变,一些模块Qt4有但是Qt5已经没有了,但是有替代的模块,为了方便代码的迁移,记录这个网站:https://doc.qt.io/qt-5/qtquick-porting-qt5.html详细请看官方迁移的说明。...
2019-04-25 08:45:46
196
原创 Qt在源文件中使用 Q_OBJECT宏定义类的注意事项
如果在头文件中使用Q_OBJECT宏,Qt的moc编译器会自动搜索到,不需要你去额外处理。但是如果你在源文件里面定义继承QObject的类的时候,使用Q_OBJECT宏,就需要你自己告诉Qt需要对这个文件进行moc处理。需要在该文件的末尾加上这样一句话:#include "该文件名.moc" // 文件名不包含后缀...
2019-04-23 17:09:40
1387
原创 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
415
原创 编译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
857
原创 Wayland协议解析 四 Wayland的所有接口
在介绍这些类的时候我必须给大家把wayland的interface分个类.Global Object, 我把它叫做服务类, 就是提供给客户端各种功能的接口. 就相当于是说,对于客户端来说,我给你提供了哪些服务,你就只能通过这些服务来进行各种操作,因此,服务越多,肯定功能越多.服务类,根据实际情况是不一样的,并且可以根据需要服务端再添加更多的服务,wayland标准提供的服务接口有以下一些:w...
2018-10-18 09:18:39
6539
原创 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
4211
原创 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
2967
原创 Wayland协议解析 一 什么是Wayland
学习Wayland协议已经好几个月了,期间也查阅了不少资料,奈何目前对于它的资料并不是很多,对他原理以及解析更是寥寥无几,其中有一篇非常不错,给个链接: https://blog.youkuaiyun.com/jinzhuojun/article/details/40264449, 需要的可以去查看查看.本文的目的是更加通俗详细的解释wayland协议.好了,废话不多说,下面开始讲述wayland协议.什...
2018-10-17 09:50:01
5331
原创 Qt学习记录九之Qt5平台插件创建流程
QGuiApplication::QGuiApplication 构造函数会传入程序启动的全部参数(argc,argv)在构造函数中调用QGuiApplicationPrivate::init() (源代码: d_func()->init();) 在QGuiApplicationPrivate::init() 函数内部调用QGuiApplicationPrivate::create...
2018-07-27 11:10:19
2345
2
原创 Qt学习记录八
在移植Qt的过程中,经常出现加载插件失败,可以通过添加以下的环境变量,打印更多错误信息,来解决问题:QT_DEBUG_PLUGINS=1
2018-07-24 14:51:10
193
原创 wayland客户端对象创建流程
wl_display_dispatch wl_display_roundtrip|| |||| \/|||| ...
2018-07-05 13:44:50
1526
原创 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
433
原创 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
408
原创 Wayland协议解析
Wayland协议解析 一 什么是WaylandWayland协议解析 二 Wayland中的数据结构解析Wayland协议解析 三 Wayland的工作原理Wayland协议解析 四 Wayland的所有接口Wayland协议解析 五 Wayland窗口创建流程...
2018-05-28 18:31:55
3544
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
944
原创 Qt学习记录七
在使用Qt作为界面开发有个好处,就是Qt有个机制可以使界面语言翻译成不同国家的语言,这就是Qt国际化。Qt国际化使用的方式:1. 首先是把所有需要翻译的字符串都用tr()包起来,因为Qt会在加载的时候通过这个调用去判断是否是需要翻译的字符串,另外也可以使用QTranslator::translate函数翻译。2.然后需要在pro文件里面指定一个 ts文件,在编译的时候就会把需要翻译的字符串生成到t...
2018-04-04 09:23:24
216
原创 通过宏把数字版本号转换成字符串版本号
#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
1213
转载 dlopen 打开依赖本应用程序的某些函数的库时的注意事项
原文地址: http://blog.youkuaiyun.com/lp525110627/article/details/53148605一、“--export-dynamic”参数的使用GCC编译可执行文件时可以使用-Wl,--export-dynamic参数,此时链接器产生可执行文件时会将所有全局符号导出到动态符号表。gcc -Wl,--export-dynam
2018-01-31 16:46:11
1183
原创 程序异常处理
#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
244
原创 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
977
转载 Qt学习记录六
参考:http://blog.youkuaiyun.com/hong_chase/article/details/73379122Qt 程序release版本的log获取不到文件信息、行数等信息,原因是:文件信息、行数等信息在Release版本默认舍弃。我们只要在.pro文件定义一个宏:DEFINES += QT_MESSAGELOGCONTEXT
2017-12-14 15:35:06
235
原创 Qt学习记录五
QT 自己激活自己的方法: actWin->raise(); actWin->activateWindow(); actWin->setWindowState(actWin->windowState() | Qt::WindowMinimized); actWin->setWindowState(actWin->windowState(
2017-08-28 15:01:56
275
原创 QT学习记录四
对于QTreeView 的一些效果设置:setAllColumnsShowFocus(true); // 使选择一行所有列setFocusPolicy(Qt::NoFocus); // 去掉虚线选择效果
2017-08-21 09:39:47
325
原创 QT学习记录三
QString 转换宽字符串QString filePath;reinterpret_castconst wchar_t *>(filePath.utf16());
2017-08-04 09:53:15
223
原创 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
1259
原创 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
342
转载 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
1979
原创 解决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
26853
8
原创 QT学习记录一
好了,现在开始记录我学习QT的学习历程 。本人也不是计算机专业出来的,自学了一点,但还是不好找工作,于是参加了培训,虽然感觉没多学到什么编程的学习生涯就是不断的看别人的源码,然后自己参考着写写自己的,把别人的好东西收集起来,等自己某一次需要的时候,知道有这个技巧可以用,就非常完美了。在我看来,很多的技术什么的,说的漂亮,其实用技巧来描述更合适,也没什么真正的技术含量,只是你想不到,是吧,哈
2017-05-15 09:16:46
3594
Qt实现屏幕GIF录制工具(源码)
2019-05-04
Qt实现屏幕GIF录制工具
2019-05-04
Qt实现中文输入法面板(集成谷歌输入法核心)-源码
2018-08-29
Qt实现中文输入法面板(集成谷歌输入法核心)-可执行程序
2018-08-29
Qt5翻译源码翻译文件(解决QTextEdit没有翻译的版本)
2018-03-26
Qt实现中国象棋(支持局域网对战,混战,内置中文输入法)--源码
2018-02-28
Qt实现中国象棋(支持局域网对战,混战,内置中文输入法)--可执行程序
2018-02-28
QT实现图片的简单编辑工具,支持多种图形绘制,支持图元的简单缩放,旋转。(源码)
2017-12-19
Qt实现windows全屏弹幕工具(可执行程序)
2017-11-22
QT实现windows全屏弹幕程序(源码)
2017-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人