自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (65)
  • 收藏
  • 关注

原创 C++的Linux程序在崩溃(coredump)后,打印调用堆栈的方法,支持x86和ARM

Linux程序如果使用-g编译,若程序发生崩溃(coredump),是可以使用gdb调试生成的dump文件,找到崩溃的位置的。然后C++有一些组件是提供崩溃堆栈打印的,本文给出boost::stacktrace和Backward-cpp打印方法。.........

2022-07-25 09:42:27 6139

原创 C++多进程master-worker工作机制较完整的实现,边端和云端协同工作实现

1、 master进程(master_app) :worker进程的守护进程,监控和管理引擎,提供worker进程策略下发、收集worker进程数据上报 2、worker进程(worker_app): 取流解码、分析推理进程 |3、轨迹视频叠加服务(draw-track-server) ,基于openresty开发的,在视频上画轨迹的服务。............

2022-07-23 13:43:32 1642

原创 C++11 异步执行函数的封装,异步执行阻塞或CPU密集型应用,延迟执行函数

C++11 异步执行函数的封装,异步执行阻塞或CPU密集型应用,延迟执行函数异步执行需要线程std::thread的配合。本文给了使用线程池的方案,以及不使用线程池的方案,关注NOT_USE_THREAD_POOL宏;提供了立即异步执行函数really_async也提供了延迟执行函数,delay_call,比如延迟1秒执行函数,提供同步和异步执行。...

2022-07-05 08:48:32 598

原创 基于openresty实现的文件推送功能,实现对客户端的监控和更新。基于openresty共享内存,http服务接受上传文件,由tcp服务推送文件至tcp客户端。

基于openresty实现的文件推送功能,实现对客户端的监控和更新。基于openresty共享内存,http服务接受上传文件,由tcp服务推送文件至tcp客户端。云端(服务端): nginx+lua,边缘端(客户端):C++11/boost.........

2022-07-01 03:40:38 865

原创 C++实测无锁队列concurrentqueue、boost.spinlock 和 std::mutex 在多线程情况下的性能表现

测试mutex 和spin lock的区别,参考mutex 和spin lock的区别;多线程读写concurrentqueue单线程读写readerwriterqueue测试验证基于C++ STL利用CAS原子操作封装的无锁list

2022-07-01 03:24:36 703

原创 C++ 基于boost.asio封装的日志库,支持输出到文件、控制台和syslog远程日志,支持变长参数的日志输出

C++ 基于boost.asio封装的日志库,支持输出到文件、控制台和syslog远程日志,支持变长参数的日志输出

2022-07-01 02:24:20 551

原创 tcp网络编程性能优化点

4、内核参数修改

2022-07-01 01:48:33 344

原创 C++实现telnet动态调试模块:将日志输出到telnet终端,通过telnet终端调用自定义注册的函数

telnet动态调试模块:将日志输出到telnet终端,通过telnet终端调用自定义注册的函数

2022-06-30 08:18:56 753

原创 使用C++11 基于二进制的序列化与反序列化,支持C++基础类类型及stl容器类型。

基于二进制的序列化与反序列化,支持C++基础类类型及stl容器类型。支持: 1、可平凡复制类型 (C++ POD概念,支持按位复制的类型) 2、std::string。 3、容器类型 4、std::pair类型理 5、std::tuple 元组...

2022-06-30 08:16:47 550

原创 使用pyqt5、pyopengl、opencv做视频渲染和轨迹绘制的示例程序

+ 支持h264文件播放模块,在h264文件模块添加帧总数;+ 需要搭配时间戳文件(time_stamp.txt)使用,以方便显示播放进度;+ 有播放、暂停和停止功能;+ 使用opengl渲染;+ 有轨迹叠加演示;

2022-06-30 08:15:28 735

原创 cpp编写的tcp服务端,提供cpp和Python两个语言版本的tcp客户端,C++部分基于boost.asio网络库

+ client-server的架构程序;+ 支持多tcp客户端连接tcp服务端,支持断链重连;+ cpp编写的tcp服务,提供两个语言版本的tcp客户端,cpp和python+ C++tcp服务端和客户端使用C++11开发,依赖boost.asio库,模块充分解耦;...

2022-06-30 08:13:12 592 1

原创 C++编写的局域网tcp license认证服务

C++编写的局域网tcp license认证服务,一个tcp服务多个tcp客户端,支持多语言Python和lua(适应cffi调用)

2022-06-30 08:12:22 729

原创 C++使用ffmpeg解码v模块,支持cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码

C++ 使用ffmpeg解码video模块,支持3种解码:cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码

2022-06-29 16:11:19 1626

原创 C++和Python 使用zmq的push和pull将任务下发给多个worker进程

C++和Python 使用zmq的push和pull将任务下发给多个worker进程

2022-06-29 09:57:41 933

原创 C++ 使用cpr http下载文件,支持使用range支持断点续传

C++ 使用cpr http下载文件,支持使用range支持断点续传

2022-06-29 09:49:21 973

原创 Python程序使用psutil采集设备信息,通过共享内存发送至C++程序

Python程序使用psutil采集设备信息,通过共享内存发送至C++程序

2022-06-29 09:42:04 334

原创 Python调用C++基于libcurl实现ftp上传客户端

Python调用C++基于libcurl实现ftp上传客户端

2022-06-29 09:36:30 245

原创 使用C++11实现的非阻塞消息总线message_bus

+ 该模块一般用在客户端;+ 基于消息的程序架构(如C/S架构),在发送一个request消息后可能会遇到这样的情况: + 等到response消息,其中response分为肯定回答和否定回答; + 在超时时间内没有收到回复。..................

2022-06-29 09:33:21 779

原创 查找C++中所有代码行数超过100的类成员函数

查找C++中所有代码行数超过100的类成员函数

2024-03-11 20:33:05 423

原创 交大论文下载器

交大的学位论文下载系统,该版权保护系统用起来很不方便,加载起来非常慢,所以该下载器实现将网页上的每一页的图片合并成一个PDF。

2024-02-16 22:44:31 417

原创 C语言可变参数和三个点解释

采用C语言编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎样实现的呢?C编译器通常提供了一系列处理这种情况的宏,以屏蔽不同的硬件平台造成的差异,增加程序的可移植性。这些宏包括va_start、va_arg和va_end等。

2024-02-09 02:03:14 355

原创 日志打印传值 传引用 右值引用性能测试

编译: g++ -o test test.cpp -std=c++11 -O2。ubuntu x86平台qnx平台优化传值都是比传引用的差。

2023-12-08 15:25:58 90

原创 QNX常用调试方法

QNX常用调试方法

2023-12-03 15:24:17 1203

原创 QNX时钟调研

QNX时钟调研

2023-12-03 15:13:38 134

原创 qnx backtrace实现

qnx backtrace实现

2023-12-03 15:06:44 166

原创 qnx修改tcp和udp缓冲区默认大小

qnx修改tcp和udp缓冲区默认大小

2023-12-03 15:04:55 248

原创 Micropython for QNX编译过程

Micropython for QNX编译过程

2023-12-03 15:02:38 64

原创 QNX的nicinfo ifmcstat if_up和tcpdump

在QNX操作系统中,nicinfo是一个用于显示网络接口卡(NIC)信息的命令行工具。它可以提供有关系统中所有可用网络接口卡的详细信息,例如接口名称、MAC地址、IP地址、掩码、广播地址、传输单元大小等等。通过nicinfo命令可以查看所有网络接口卡的信息,也可以通过添加接口名称参数来查看特定接口的信息。nicinfo命令对于调试和排除与网络有关的问题非常有用,也可以用于监视和管理系统中的网络接口卡。

2023-12-03 14:56:36 338

原创 QNX usleep测试

usleep时间在QNX上没有ubuntu上运行准确,但是10ms以上误差不大。

2023-12-03 14:32:49 134

原创 使用GDBdeug调试QNX程序

qnx远程调试

2023-12-03 14:27:05 197

原创 QNX下mmap

MAP_NOCACHE标志告诉内核不要将映射的内存页缓存到文件系统缓存中,而是直接将内存与文件关联。这对于需要频繁读写大量数据的应用程序是有益的,因为它避免了在读写数据时额外的缓存开销。在Linux系统中,使用mmap映射文件到内存时可以指定不使用缓存。这可以通过在调用mmap时将MAP_NOCACHE标志传递给mmap函数来实现。

2023-12-03 14:23:47 89

原创 QNX技术博客

QNX技术博客

2023-12-03 14:20:50 30

原创 qnx learning

qnx学习资料

2023-12-03 14:17:07 42

原创 SSE4.2 指令集内置函数来加速32位循环冗余校验(CRC-32)计算

_mm_crc32_u8 指令使用了 SIMD 技术(即单指令多数据流技术),可以同时处理多个字节的数据。这些字节被打包成 64 位整数,然后使用单条 _mm_crc32_u64 指令计算它们的 CRC-32 校验和。这种方式比查表法更快,因为它可以利用 CPU 的并行性,同时处理多个字节,从而减少了指令的数量。

2023-12-03 14:09:52 396

原创 vscode配置使用 cpplint

安装clang-format和cpplintsudo apt-get install clang-formatsudo pip3 install cpplint

2023-12-03 13:58:37 419

原创 解决vscode C++代码查找所有引用“Find all reference“慢的问题

使用vscode编写C++代码右键"Find all reference"时,发现响应特别慢,而且很不准确。一个解决方法是使用global组件待的gtags。

2023-03-08 13:01:31 2867

原创 使用std::string和std::string&& 区别

C++11 右值引用 一般搭配std::move使用

2023-02-22 08:06:13 512

转载 git merge的三种操作merge, squash merge, 和rebase merge

git merge的三种操作merge, squash merge, 和rebase merge的使用区别

2023-02-17 20:18:03 731

原创 mingw64和msvc编译脚本

+ 提供windows下mingw64和msvc编译器的一键编译脚本,+ 其中msvc编译器是免费的ms_buildtools,下载路径:https://aka.ms/vs/17/release/vs_buildtools.exe+ mingw64环境的下载路径:https://www.msys2.org/docs/environments/

2023-01-10 18:58:42 411

原创 读取tcp/udp默认缓冲区大小

tcp和udpsocket缓冲区大小查看方法。tcp发送缓冲区默认是16k,tcp接受缓冲区默认是8k;udp发送缓冲区默认都是是208k。

2022-10-11 16:46:11 3280

模仿Outlook建立分类列表框

这个程序模仿Outlook建立分类列表框。没有用到CTreeCtrl类

2011-09-08

一个可停靠的,可自动隐藏的,并且可以换肤的 OutLookBar

使用方法及介绍http://blog.113e.com/281206.shtml

2011-08-26

双击listbox某一行,使这行的某个内容出现在编辑框中。

双击listbox某一行,使这行的某个内容出现在编辑框中。

2011-08-17

使用packet.dll发送与接收原始数据包

相关文章http://blog.csdn.net/stallion5632/article/details/6689265

2011-08-16

使用packet .dll的原始数据发送和接收

详情请进http://blog.csdn.net/stallion5632/article/details/6689265

2011-08-15

Visual_C++_6.0环境配置

Visual C++ 6.0环境配置 1 1. 概述 2 2. 环境设置(Environment Settings) 2 2.1 配置Tab键所占的字宽 2 2.2 配置代码颜色 2 2.3 设置前后的效果对比 3 3. 工作区域设置(Workspace Settings) 4 3.1 调整工具栏(Tool Bar) 4 3.2 调整Workspace的位置 5 3.3 关闭Output窗体 5 3.4 设置前后的效果对比 5 4. 工程设置(Project Settings) 7 4.1 设置Precompiled Headers 7 4.2 设置编译后的文件路径 7 5. Console-base的调试环境 8 5.1 设置Console-base 8 5.2 让Console与Window共存 10 6. 快捷键(Shortcut-key) 12 6.1 文件操作 12 6.2 代码间的快速跳转 12 6.3 编译?运行?调试(debugging) 13 6.4 各类常用的window 13 7. 总结 13

2011-06-29

SourceInsight 安装文件 序列号以及配置文件

里面包含: SourceInsight安装文件 序列号以及配置文件 配置文件风格和VS2005很相似

2010-11-27

Protel99seME 小插件 鼠标增强

Protel99seME 还是经典的东西啊,体积小,有了这个就更方便了

2010-11-27

WINCE同步USB驱动

WINCE同步USB驱动,仅仅是驱动,很好的

2010-11-27

PDF转换成Word小工具

PDF转换成Word小工具,只要PDF能转换的都能

2010-11-27

GPS定位 WINCE

用EVC开发的程序,VS和EVC应该都可以打开,但是要装上相应的SDK

2010-11-27

GPRS收发短信实验 WINCE EVC

用EVC开发的程序,VS和EVC应该都可以打开,但是要装上相应的SDK

2010-11-27

GPRS拨打电话实验 EVC WINCE

用EVC开发的程序,VS和EVC应该都可以打开,但是要装上相应的SDK

2010-11-27

TCPIP通信实验 WINCE EVC

用EVC开发的程序,VS和EVC应该都可以打开,但是要装上相应的SDK

2010-11-27

UDP通信实验 wince EVC

用EVC开发的程序,VS和EVC应该都可以打开,但是要装上相应的SDK

2010-11-27

2440test 2440示例代码

2440test由友善之臂提供,为2440开发板的示例程序,请使用ADS编译。 注意:2440test可自适应64M-1GB Nand Flash版本的 mini2440/micro2440

2010-11-27

linux示例代码 example

请把该目录复制到 /opt/FriendlyARM/mini2440目录中,编译使用时进入其中一个子目录,运行make即可。 该目录的 linux压缩包位于本光盘的linux目录中,名字为:examples.tgz

2010-11-27

2440原理图和封装库

41-40pin转接头原理图和封装库.ddb mini2440-PcbLib.lib mini2440原理图.ddb mini2440原理图.pdf

2010-11-27

keil生成bin文件 英贝德的东西

keil生成bin文件,网上找的,挺好的

2010-11-27

MFC序列化资料文档 序列化资料

MFC序列化资料文档 ,网上找的,希望对你有用

2010-08-09

vs插件 适用于VC6.0 vs2005 vs2008(Visual.Assist)及破解包

Visual.Assist.X.v10.5.1724及破解包 一般的杀毒软件都会说破解文件是木马,用过破解文件的大概都知道这情况吧!

2010-08-09

cpp_master_worker依赖第三方库地址

cpp_master_worker依赖第三方库地址 loghelper : 这是我一直在使用的基于boost.log的日志库; concurrentqueue : A fast multi-producer, multi-consumer lock-free concurrent queue for C++11 libzmq : ZeroMQ core engine in C++, implements ZMTP/3.1 和 cppzmq : Header-only C++ binding for libzmq

2022-07-21

cmake example with Support of Qt5

project( Qt5Project ) cmake_minimum_required( VERSION 2.8.11 ) # root of your msvc14 x64 prebuild set( CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "C:/Qt/Qt5-msvc14/5.6/msvc2015_64" ) set( CMAKE_INCLUDE_CURRENT_DIR ON ) set( CMAKE_AUTOMOC ON ) find_package( Qt5Widgets REQUIRED ) qt5_wrap_ui( UI_HEADERS mainwindow.ui ) qt5_add_resources( QRCS resources.qrc ) add_executable( ${PROJECT_NAME} main.cpp mainwindow.cpp ${UI_HEADERS} ${QRCS} ) target_link_libraries

2022-07-17

cpp-python-tcp-demo

cpp-python-tcp-demo

2022-06-05

qtcreator_style2

qtcreator配置文件,visual studio风格

2022-06-05

EFFECTIVE MINIDUMPS

在过去几年里,崩溃转储(crash dump)成为了调试工作的一个重要部分。如果软件在客户现场或者测试实验室发生故障,最有价值的解决方式是能够创建一个故障瞬间的应用程序状态镜像,然后可以在开发者的机器上通过调试器进行分析。第一代的crash dump通常被称为“全用户转储(full user dump)”,它包含了进程的虚拟内存的全部内容。毫无疑问,这样的dump对于事后调试非常有价值。但是,这样的dump经常非常大,使得通过电子方式发送给开发者非常困难,甚至没法完成。另外,没用公共接口可以通过程序调用来创建dump,我们必须依赖于第三方工具(例如,Dr. Watson 或者Userdump)来创建他们。 随着Windows XP,微软发布了一组新的被称为“minidump”的崩溃转存技术。Minidump很容易定制。按照最常用的配置,一个minidump只包括了最必要的信息,用于恢复故障进程的所有线程的调用堆栈,以及查看故障时刻局部变量的值。这样的dump文件通常很小(只有几K字节)。所以,很容易通过电子方式发送给软件开发人员。一旦需要,minidump甚至可以包含比原来的crash dump更多的信息。例如,可以包含进程使用的内核对象的信息。另外,DbgHelp.dll提供了通过编程创建minidump的公开API。而且,它是可以重新发布的。我们可以不再依赖于外部工具。 minidump可以定制,给我们带来了一个问题-保存多少应用程序状态信息才能既保证调试有效,又能够尽量保证minidump文件尽可能小?尽管调试简单的异常访问只需要调用堆栈和局部变量的信息,但是解决更复杂的问题需要更多的信息。例如,我们可能需要查看全局变量的值、检查堆的完整性和分析进程虚拟内存的布局。同时,可执行程序的代码段往往是多余的,开发用的机器上可以很容易找到这些执行程序。 幸运的是我们可以通过DbgHelp函数组(MiniDumpWriteDump和MiniDumpCallback)来控制这些功能,甚至可以更复杂。在这篇文章里面,我们会解释怎么样使用这些函数来创建mindump,保证文件足够小但是又能有效调试。也会讲解minidump中应该包括那些数据,并且如何使用通用调试器(WinDbg和VS.NET)来看这些信息。

2013-11-15

Effective Exception Handling in Visual C++

这篇文章描述的是捕获和处理运行在Windows下的Visual C++程序中异常与错误的标准技术。 异常(或者说关键性错误、崩溃)一般来说是你的程序运行不正常,从面不得不停止运行的情况。比如说,如果你的程序访问一块无效的内存地址(如NULL指针)、无法分配一个Buffer(内存不足)、C语言库的运行时(C run-time libraries,CRT)发现一个错误,并且需要程序立即停止运行等等,这些情况下都会产生一个异常。 一个C++程序可能会处理几种异常:SEH异常,这是由操作系统结构化异常处理系统产生的;CRT错误,这是由C语言库运行时——还有——信号(signals)产生的。每种类型的错误都需要安装一个异常处理函数,以便能在出错时拦截这个消息,并做一些错误恢复的处理。 如果你的程序有好几个线程,那么事情或许会更复杂一些。有些异常处理机制是对整个程序有效的,而另一些则仅对当前线程有效,这种情况下,你必须为每个线程都安装异常处理。 你程序中的每个模块(EXE或DLL)如果都连接了CRT库(无论是静态还是动态的),那么异常处理的方法就主要基于CRT的连接方式(?)。 各种各样类型的错误,多线程下对异常的各种不同的捕获方法,还有基于CRT连接方式异常处理,这让你的程序捕获所有可能的异常变得困难且麻烦。这篇文章的目的就在于帮助你更好的了解异常机制,并在你的C++程序中更好更有效的利用它。 这篇文章附带了一个小控制台程序ExceptionHandler作为例子,这一个例子能产生和捕获各种不同的异常,并且能生成一个崩溃时的Dump文件,通过这个文件你可以定位到出错的代码行。

2013-11-15

About Exceptions and Exception Handling

当遇到下列情况时,程序会出现异常: 程序访问一个不可用的内存地址(例如,NULL指针); 无限递归导致的栈溢出; 向一个较小的缓冲区写入较大块的数据; 类的纯虚函数被调用; 申请内存失败(内存空间不足); 一个非法的参数被传递给C++函数; C运行时库检测到一个错误并且需要程序终止执行。

2013-11-15

A Crash Course on the Depths of Win32 Structured Exception Handling

在Win32的核心, 结构化异常处理(Structured Exception Handling)(SEH) 是操作系统提供的一种服务. 你能找到的所有关于SEH的文档都会描述某一种编译器的运行时库(runtime library)对操作系统实现的某种包装. 这篇文章层层剥析SEH一直到它的最基本的概念.

2013-11-15

C# XML demo,C# XML入门,XmlHelper

After working with a couple of XML projects for the last six months, I am ready to share a class I wrote called XmlHelper which got me through all the complexity of XML and made my life a lot simpler. If you are a XML beginner or have no idea about XML, this article should teach you the very basic c

2013-06-20

C#基础概念二十五问

1.静态成员和非静态成员的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用? 6.sealed 修饰符是干什么的? 7.override 和 overload 的区别? 8.什么是索引指示器? 9.new 修饰符是起什么作用? 10.this 关键字的含义? 11.可以使用抽象函数重写基类中的虚函数吗? 12.密封类可以有虚函数吗? 13.什么是属性访问器? 14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗? 15.接口可以包含哪些成员? 16.类和结构的区别? 17.接口的多继承会带来哪些问题? 18.抽象类和接口的区别? 19.别名指示符是什么? 20.如何手工释放资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别? 23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射?

2013-06-11

一小时入门C#(中英文)

如果你是有C++的功底,对C#感兴趣的。这篇文章正适合你,本文省去和C++相似的地方,挑出重点需要注意的知识点进行讲解。 原文较长(约 1.5 万字),但浅显易懂,讲解生动活泼,几乎覆盖了初学者入门所需的全部编程语法及概念,请读者耐心阅读。本文所有知识点都是非常重要的!!! 中文翻译由“野比 ”同学提供

2013-06-08

费用管理系统 vc + access

背景:哥儿几个经常一起吃饭,每次总是一起付账,然后每人再给付账人的钱。 若干次后发现非常麻烦,于是写了这个费用管理系统。 费用管理系统 vc + access 数据库已经加密,代码中有解释。 抱歉的是代码没有什么注释,有疑问可以发邮件给[email protected]

2012-06-15

C和C++编程规范

华为编程规范和范例 google_c++编程风格指南 C语言编程规范 Linux内核代码风格

2012-03-06

模拟拷贝进程

模拟window拷贝进程,采用avi的方法.

2011-10-03

combobox本身的编辑框和列表框的子类化

实现了对combobox本身的编辑框和列表框的子类化,程序极为简单,编译环境VS2005

2011-09-30

快速字符串搜索

基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。

2011-09-14

使窗口闪烁

运行程序,单击“开始闪烁”按钮,程序循环从一种状态闪烁到另一种状态。

2011-09-13

使用进度条

一个进度条,一个edit box控件,先改变edit box控件中的百分比字样,接着改变进度条的百分比

2011-09-12

利用剪贴板实现Exe程序间的数据交换

在 Windows 中经常会使用剪贴板在不同程序间进行数据交换。本例以交换字符串为例介绍如何在程中利用剪贴板实现 EXE 程序间的数据交换。

2011-09-08

空空如也

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

TA关注的人

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