C++
文章平均质量分 55
未狂
未羊,似狂
展开
-
Linux默认以root或管理员权限启动程序的三种方式
Linux系统默认以管理员、root权限启动程序原创 2022-01-03 18:13:01 · 17900 阅读 · 2 评论 -
【C++】libwebsockets库的简易教程
说在前面最近很长一段时间,都有在嵌入式上进行websocket通信的需求。查了很多资料,现在C++可用的ws第三方库不多,尤其是在较老的嵌入式开发环境中,既要支持C99和SSL,又需要轻量级不依赖第三方库,基本上就只剩下libwebsockets这个库了。但是libwebsockets库是纯C开发,没有C++的特性,所以很多逻辑非常抽象,设计思路也很诡异,与之前接触的很多三方模块差异太大。我扒了源码的demo,又从官方git、wiki上找了一点资料,才勉强搞清楚了一个简单的ws客户端的大致生命周期流程原创 2021-02-24 17:48:01 · 15982 阅读 · 2 评论 -
CMake简易教程,常用语法命令,以及交叉编译
CMake笔记概述正常流程:预编译、编译、汇编、链接Visual Studio(集成开发环境IDE:编辑器、编译器VC++、nmake、调试器),比较傻瓜的进行完整的编译流程,不需要开发者干预。禁用VisualStudio后,windows平台下无法使用此流程工具,部分代码也因为引用了VC++的特性,所以也许要进行一定的改造重构cmake优点:跨平台、支持多种编译器:vc++、mingw、crgwin、lcc等,利于开发者掌握代码模块间的关联性;缺点:官方文档比较杂,没有优秀的官方范例,原创 2020-12-28 14:35:50 · 605 阅读 · 0 评论 -
Linux Alsa库,遍历播放、录音设备信息,aplay、arecord扒源码(暂未注释)
最近在研究Linux的alsa录音、播放相关知识,调用libasound的第一步,都是要获取相关设备的句柄,但是光看官方文档,实在是云里雾里,只要先从alsa的命令工具入手alsa的命令 aplay -l 和 arecord -l,可以遍历PC的所有录音设备和播放设备然后扒了一下这个命令的源码,在alsa-util的aplay.c文件里,然后重新整理了一下,去除了一些不需要的#define宏和全局变量得到如下代码附带上libasound.so依赖库,就能直接运行获得设备列表#inclu原创 2020-10-21 19:00:29 · 2238 阅读 · 0 评论 -
Windows编译ActiveMQ-cpp-Library
编译环境、编译工具:win10系统Visual Studio 2017(需要安装windows SDK 8.1组件)cmake 3.18准备组件:1.OpenSSL 1.0.2u可以自己编译,也可以下载第三方编译好的我使用的是第三方OpenSSL下载地址:http://slproweb.com/products/Win32OpenSSL.html2.apr-1.7.0、apr-util-1.6.1、apr-iconv-1.2.2(下载地址:https://..原创 2020-07-05 00:12:15 · 889 阅读 · 1 评论 -
编译apache运行库,apr提示缺少“apr_escape_test_char.h”解决方案。
最近在windows平台编译ActiveMQ的时候,一直卡在编译apr运行库的步骤上,反复提示缺少“apr_escape_test_char.h”头文件。在网上查了很多资料,要么是官方直接给出了apr_escape_test_char.h的内容,要么是第三方提供了apr_escape_test_char.h文件,就是没人能解释这个文件是从哪来的。一阵没头苍蝇乱撞,我居然在一台电脑上莫名其妙倒腾出来了这个文件,也不知道是怎么就生成的。我apr_escape_test_char.h文件第一行里看到了一段注释原创 2020-07-04 21:44:37 · 655 阅读 · 1 评论 -
【Qt】QString中文转C++ char*乱码问题
QString().toStdString().c_str()转出的char*字符串,如果是英文不会出问题,但是如果QString含有中文字符,就会出现乱码 解决方法:QByteArray ba=QString().toLocal8Bit();char *str=ba.data(); PS:不能一步写成 char *str=QString().toLocal8Bit()...原创 2018-10-25 09:11:26 · 6940 阅读 · 2 评论 -
【C++】Windows,实现TFTP下载客户端(不支持上传功能)
#include "stdafx.h"#include <WinSock2.h>#include <iostream>#include <WS2tcpip.h>#include <cstdlib>#pragma comment(lib,"ws2_32.lib") using namespace std;//初始化winsock,获取...原创 2018-08-16 16:23:22 · 1726 阅读 · 2 评论 -
【C++ Windows】多线程:创建、挂起、恢复,信号量
线程函数(静态,全局)DOWRDWINAPI Thread(LPVOID lp){return 0;}创建线程HANDLE handle=CreateThread(NULL,0,Thread,lp,NULL,NULL);着重第三个,第四个参数:线程函数地址,传入线程的参数第六个参数为返回的线程ID,LPDWORD类型Thread函数DWORD W原创 2017-02-22 16:45:42 · 3178 阅读 · 0 评论 -
【Qt】Q_OBJECT宏,编译报错,解决办法(多继承Object情况下)
多继承QObject情况下使用Q_OBJE宏编译出错问题的解决办法原创 2016-10-18 22:33:14 · 9034 阅读 · 11 评论 -
【拾遗】C++申请与销毁动态二维数组
实质为定义一个指向指针的指针;在一个一维动态数组的每个元素上,再定一个一个动态数组#include#includeusing namespace std;//x行数,y列数void fun(int x,int y){ //定义指向指针的指针 int **n; //先动态申请一个动态一维数组 n=new int * [x]; //循环原创 2015-09-09 11:27:57 · 1383 阅读 · 0 评论 -
【Qt】滚动条QScroolBar实现滚屏功能
环境:Qt5.3编译器:Qt Creator功能:Qt滚屏功能原创 2015-08-05 14:43:47 · 28139 阅读 · 1 评论 -
【Qt】条形码制作器(Code39编码)
环境:Qt5.3 MSVC2010编译器:Qt Creator描述: 最近公司项目卡在了POS机打印小票上,因为涉及打印机太多,很多打印机对ESC/POS指令集支持又不是特别好,所以直接用ESC指令集打不出需要的条形码。唯一的方式只有先生成需要的条形码图片,再解析图片把数据发送给POS小票机打印。主要问题就是生成条形码算法了。 现在最常见的条原创 2015-10-22 10:47:17 · 5874 阅读 · 5 评论 -
【拾遗】检测cin输入是否满足类型
int a;cin>>a;if(cin.good()){ //输入正确}else{ //输入错误;}转载 2015-11-11 11:12:56 · 567 阅读 · 0 评论 -
【C++】Winsock套接字编程(TCP/IP协议体系)常用API
鄙人水平浅薄,如有错误,欢迎大神指正系统环境:Windows10 64位开发环境:VisualStudio2015PS:关于本文提供的winsock套接字API,是针对win操作系统的,但是大部分API对于linux系统一样适用,可能部分类型win系统进行了typedef类型申明(比如socket函数创建套接字时,win返回的是typedef后的SOCKET,linux原创 2016-05-24 14:21:30 · 2699 阅读 · 1 评论 -
【拾遗】C++申请动态连续内存的二维数组
前几天去科大讯飞面试,其他问题回答的都还不错,但是被问到这个“如何动态申请一个连续内存空间的二维数组”时,稍微顿了一下。倒不是回答不上来,而是之前从没有尝试敲过这样的代码,光说思路实在是太干瘪。回来以后,尝试了几段代码,又和不少人讨论了一下,把代码撸了出来。先说思路:对于要求的x*y的二维数组,可以先申请一段连续的x*y内存空间,然后通过指向指针的指针的重新定位每行开头的位置。原创 2016-04-19 17:29:49 · 3390 阅读 · 3 评论 -
【C++】Winsock套接字编程,struct sockaddr、sockaddr_in,主机网络字节序
前一篇关于windows平台下winsock套接字编程的相关apistruct sockaddr与struct sockaddr_in在bind函数,connect函数里提到了套接字编程网络地址信息结构体const struct sockaddr和const struct sockaddr_in关于const struct sockaddr是通用的套接字网络地址信息结构原创 2016-06-11 17:05:42 · 4253 阅读 · 0 评论 -
【Qt】qDebug()调试信息保存至txt日志文件
开发环境:Win10 Qt5.7.0 VisualStudio2015核心:qInstallMessageHandler函数Qt可将qDebug()输出的信息(其他信息),进行额外处理最常见的用法,是将输出信息保存到txt文本文件中,可做发布后日志功能原创 2016-10-09 11:01:34 · 5780 阅读 · 3 评论 -
【Qt】槽函数中获取发出信号的对象
核心:QObject::sender()对于信号与槽的连接connect( obj1 , SIGNAL(sigFun()) , obj2 , SLOT(slotFun()) )或者connect( obj1 , &Object1::sigFun , obj2 , &Object2::slotFun )可以通过信号与槽函数的参数来传递数据但是存在一些情况,我们希望能在原创 2016-10-14 16:01:25 · 6587 阅读 · 2 评论 -
Qt窗口最小化到托盘,托盘菜单控制
作为Qt初学者,最近在编写窗口zui原创 2014-08-13 10:12:03 · 4290 阅读 · 3 评论