自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 利用QEventLoop实现同步等待槽函数返回

qeventloop手动开启消息循环达到接口同步返回

2022-06-23 11:22:42 588 1

原创 B树的性质、B树的添加和删除(无图。。。)

B树的特性;B树增加节点和删除节点的理论方法和步骤

2022-06-10 14:12:58 198

原创 QString字符串常用编码格式转换

QString GBK2UTF8(const QString &str){ QTextCodec *utf8 = QTextCodec::codecForName("UTF-8"); return utf8->toUnicode(str.toUtf8());}QString UTF82GBK(const QString &str){ QTextCodec *gbk = QTextCodec::codecForName("GB18030"); ...

2022-05-19 13:14:05 2413

原创 OpenCV4.X测试cpp报错

cmake编译example下面的demo时出现错误,代码如下,提示找不到两个.cmake文件CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package):Could not find a package configuration file provided by "OpenCV" with any of the following names: OpenCVConfig.cmake

2022-03-01 10:27:18 530

原创 Virtual Box & ubuntu 14.04配置共享文件夹

1.打开虚拟机,设置-》安装增强功能,输入密码授权,自动安装2.点击工具栏 设备-》共享文件夹-》共享文件夹设置记住共享文件的名称,后面挂载要用。选择固定分配。点OK。3.进入ubuntu系统,打开终端。开始挂载目录的操作(获得root权限或者加sudo执行命令)(1)在需要挂载的位置创建挂载点sudo mkdir /mnt/UbuntuShare(2)执行挂载到指定目录成功之后文件夹名称变为绿色。4.上面的设置在重启虚拟机之后就失效了,还需...

2022-02-28 11:09:49 1054 1

原创 Ubuntu重启之后共享文件夹消失

首先查看共享文件夹是否已经存在并且设置为总是开启使用命令查看当前挂载的共享文件夹vmware-hgfsclient存在的情况下,然后使用下面命令sudo apt-get install open-vm-tools-dkms sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022或者:sudo vmhgfs-fuse .host:/ /mnt/hgfs -o.

2021-12-20 10:36:01 4978 9

原创 网络编程之IO、 poll、 epoll模型

网络编程的目的是为了解决机器间的通信问题。1.常规API实现的基础IO int listenfd, connfd, n; struct sockaddr_in servaddr; char buff[MAXLNE]; if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("create socket failed error: %s(errno:%d)\n", strerro

2021-12-15 23:21:36 2721

原创 ubuntu配置阿里云站点 + apt-get常用命令

1.复制原文件备份$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2.编辑文件中的源列表#阿里云的源deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiv

2021-11-16 10:21:29 557

原创 samba配置

samba服务:创建共享目录,便于在windows和Linux系统间编码和编译1.1 安装samba服务$ sudo apt-get install samba samba-common1.2 创建共享目录,并赋予读写权利$ sudo mkdir share$ chmod 777 share/ -R1.3配置文件$ sudo vim /etc/samba/smb.conf// 在最后添加下列配置[Share] command = My samba .

2021-11-16 10:16:31 297

原创 软件工程师放弃还是放弃?

工作三年有余,最不安的感受就是感觉自己一无所知。毕业后来到了一个只有20人不到的微型创业公司,进入公司带我的人没几个月就离职了,一路走来都是自己摸着石头过河。从最开始仿串口助手写的串口通讯程序(vs2013,MFC)开始对软件开发工作有了一些模糊的形状,就是标准的语法、流畅的过程、API的调用以及预期结果的正确输出。然后没了。。。。 后来开始介入项目(挺扯淡的项目...),用MFC开始画界面,就通过dialog的编辑器放一些按钮、文本框之类的基础控件,然...

2021-11-10 10:24:28 106

原创 【linux入门到放弃】sublime text3 build:3211 License

----- BEGIN LICENSE -----Member J2TeaMSingle User LicenseEA7E-1011316D7DA350E 1B8B0760 972F8B60 F3E64036B9B4E234 F356F38F 0AD1E3B7 0E9C5FADFA0A2ABE 25F65BD8 D51458E5 3923CE8087428428 79079A01 AA69F319 A1AF29A4A684C2DC 0B1583D4 19CBD290 217618CD565

2021-11-10 09:27:09 535

原创 [MFC] 框架中成员类互相发送消息

CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd; CiTMSView *m_dlg = (CiTMSView *)pMain->GetActiveView(); m_dlg->SendMessage(WM_MYMSG_DIMMING, (WPARAM)constrast, (LPARAM)...

2019-10-11 09:17:11 190

翻译 DLL的两种调用方法总结

DLL调用方式可以分为两类:隐式调用(需要.lib 和.dll)显式调用(需要.dll)隐式调用隐式加载就是在程序编译的时候就将dll编译到可执行文件中。这种加载方式调用方便,程序发布的时候可以不用讲dll带着.缺点是,这样编译出来后,程序会很大。新建一个工程,将所需的.dll  .lib  .h放到工程目录下//隐式加载dll#pragma comment(lib, ...

2018-09-27 14:50:42 15939

原创 基于VS2013 编写带界面的DLL 并实现调用 笔记

编写DLL1.创建一个MFC DLL,选择“使用共享MFC DLL的规则DLL”,完成2.运行时库选择:属性-->c/c++-->代码生成-->运行库  “多线程调试 DLL (/MDd)”.好像是默认的3.项目属性中添加新的MFC类  类名自定义  如IHpDllWin, 选择基类:CDialog,点击完成4.该动态库中需要实现一个导出函数,该函数返回的是导出界...

2018-09-27 14:35:20 2206 1

原创 基于VS2013 MFC获取本地IP

char szLocalName[256];//定义本机名称存储数组 WSADATA wsaData;//定义套接字存储变量 if (WSAStartup(MAKEWORD(2, 0), &wsaData) == 0) { if (gethostname(szLocalName, sizeof(szLocalName)) != 0) { sLocalName = ...

2018-09-27 14:19:22 654

原创 【嵌入式Linux C编程】Linux多线程编程

进程——资源分配的最小单位,线程——程序执行的最小单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路...

2018-03-29 22:30:53 1098

原创 【嵌入式Linux C编程】Linux进程间通信——IPC

进程间通信的作用:数据传输; 资源共享; 通知事件; 进程控制。管道通信管道是单向的,先进先出(FIFO)。将一个进程的输出和另一个进程的输入连在一起。输出进程在管道尾部写入数据,输入进程在管道头部接受数据。数据在被读出后,将从管道中清楚,其他进程再也无法读取到该数据。进程试图读空管道时,进程将阻塞。同样,管道已经满时,进程再试图向管道写入数据,进程将阻塞。管道分为无名管道和有名管道。无名管道适用...

2018-03-29 20:59:38 439

原创 【嵌入式Linux C编程】Linux进程控制编程

进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。进程的生命周期:        创建:每个进程可以由父进程创建,进程可以创建子进程,子进程可以创建孙进程。        运行:多个进程可以同时存在,进程间可以通信。        撤销:进程可以撤销,从而结束一个进程的运行。进程的三种状态:        就绪状态(ready):进程具备一切条件,正在等到分配处理器时间片...

2018-03-28 20:28:56 226

原创 【嵌入式Linux C编程】linux文件编程

系统调用是操作系统提供给用户的一组“特殊”接口,用户程序可以通过这些接口来获得内核提供的服务。用户程序为什么不可以直接调用内核?系统调用可以保护内核。用户程序在用户空间中操作用户数据,不允许访问内核空间数据,也无法调用内核函数。用户编程接口API在用户空间中,连接了用户空间的系统命令和内核空间的系统调用。Linux文件可分为:普通文件,目录文件,链接文件,设备文件。不带缓存的I/O操作open函数...

2018-03-28 19:35:56 544

原创 【嵌入式Linux C编程】数据结构---栈和队列

栈stack栈是一个特殊的线性表,只能在一端操作;性质:后进先出(FLIFO)栈顶(top):允许操作 的一端;栈底(bottom):不允许操作的一端;若存储栈的长度为StackSize,则栈顶位置top必须小于StackSize。若栈存在一个元素,top=0; 空栈的条件:top=-1;栈的结构typedef struct sqStack{ int data[MAXSIZE]; ...

2018-03-26 21:40:10 199

原创 【嵌入式Linux C编程】数据结构之链表

链接表是线性表的链接储存形式。线性表的储存空间是有限的,而链表的储存空间是无限的。表中每个元素由节点Node构成,每个节点中分为一个数据区域,如 int data ,和一个指针区域  struct struct_name *next。一条链表的第一个节点为头结点,一般不存放数据,当做头指针使用,指向下一个用来存放数据的节点。链表的定义typedef char ListData;typedef ...

2018-03-26 21:25:52 196

原创 【嵌入式系统学习记录】小项目:停车场管理系统的体会

停车场项目需求问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门          外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车   要先退出,待它走后在依次进入。汽车离开时按停放时间收费。基本功能要求:          (1)建立三个数据结构分别是:停放栈、让路栈、等候队列。   ...

2018-03-25 22:55:16 1706

原创 【嵌入式系统学习记录】基于简易通讯录对指针、结构体、函数的使用体会

项目:简易通讯录#ifndef _NODE_H_#define _NODE_H_#include<stdio.h>#include<stdlib.h>#include<string.h>#define SUCCESS 10000#define FAILURE 10001typedef char DataType;struct person...

2018-03-25 22:47:54 163

原创 【嵌入式系统学习记录】习题:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来。比如:帧头和帧尾分别是head和tail 字符串”asdheadhauboiso

输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来。比如:帧头和帧尾分别是head和tail  字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧。#include<stdio.h>#include<stdlib.h>#include<string.h>char *find(ch...

2018-03-14 11:09:28 292

原创 【嵌入式系统学习记录】练习:编写一个函数,求字符数组的前n个字符中最大字符的地址并返回该地址,字符数组和n作为函数的参数;

编写一个函数,求字符数组的前n个字符中最大字符的#include<stdio.h>#include<stdlib.h>#include<string.h>char *check(char *ptr1, int size){ char *temp; int i; for(i = 0; i < size; ++i) { if(*(ptr1...

2018-03-14 11:06:19 358 1

原创 【嵌入式系统学习记录】练习:把句子中的单词倒序;(输入"i am from shanghai",输出"shanghai from am i")

把句子中的单词倒序;(输入"i am from shanghai",输出"shanghai from am i")。#include<stdio.h>#include<stdlib.h>#include<string.h>void reverse(char *str){ int i; char *temp = (char *)malloc(size...

2018-03-13 23:19:03 194

原创 【嵌入式系统学习记录】练习:判断一个字符串是不是另一个字符串的子串;(比如"ab"是"aabcd"的子串)

#include<stdio.h>#include<stdlib.h>#include<string.h>char *jungle(char *p1, char *p2, int size1, int size2){ int i, n, m; char *s1 = "NO!"; char *s2 = "YES!";/* char *temp =...

2018-03-13 23:15:05 496

原创 【嵌入式Linux C编程】2018.3.13 数组与指针

数组与指针函数与指针在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为“函数指针变量”。一般形式为:类型说明符 (*指针变量名)()。例如:int (*pf)(); //表示pf是一个指向函数入口的指针变量,该函数的...

2018-03-13 23:01:50 96

原创 【嵌入式Linux C编程】2018.3.10 数组、函数

数组一维数组一维数组的定义格式为:类型说明符  数组名[常量表达式]; 例如:  int a[10];  它表示定义了一个整形数组,数组名为a,有10个元素。在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。常量表达式中可以包括常量和符号常量,但不能包含变量,即数组的大小不依赖于程序运行过程中变量的值。a[0]存在低地址 ;a[9]存在高地址。每个数据元素...

2018-03-11 18:37:10 195

原创 【嵌入式Linux C编程】2018.3.9 C语言中的常用关键字

C语言中常用关键字static 与 externstatic修饰变量时,该变量的存储空间转移到静态数据存储区。一般情况下局部变量时存放在栈区的,并且其声明周期是在该语句块执行结束时便结束了。但如果用static修饰,该变量便存放在静态数据区,其生命周期一直延续到整个程序结束为止,但是其作用域并没有发生变化,依旧只作用于该语句块。对于静态的局部变量,如果没有进行初始化,它会继承之前最后一次赋予它的值...

2018-03-11 15:26:36 132

原创 【嵌入式系统学习记录】练习题:设计一个洗牌发牌的程序;(随机产生52个不同的数)

设计一个洗牌发牌的程序;(随机产生52个不同的数)#include<stdio.h>#include<stdlib.h>int main(){ char a[52] = {'0'}; char b[13] = {'A', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'J', 'Q', 'K' }; int i =...

2018-03-11 14:30:29 324

原创 【嵌入式系统学习记录】练习题:一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数。

一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数。#include<stdio.h>int main(){ printf("perfect number between 0 -1000:\n"); int i = 0, j = 0, sum = 0; for(i = 1; i <= 1000; ++i) {...

2018-03-11 14:12:39 275

原创 【嵌入式系统学习记录】练习题:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位?

有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位?#include<stdio.h>int main(){ int i, n; int number = 0; int person = 0; int time = 0; printf("please enter tne number of monke...

2018-03-11 14:09:09 316

原创 【嵌入式系统学习记录】练习:通过编程实现,统计1~n有多少个9

通过编程实现,统计1~n有多少个9?#include<stdio.h>int main(){ int i = 0, j = 0, n = 0; printf("please input a number:\n"); scanf("%d",&i); for(j = 1; j <= i; j++) { if(9 == j % 10) { n++;...

2018-03-11 13:57:27 210

原创 【嵌入式Linux C编程】2018.3.8 数据类型、运算操作符、基本语句

C语言基础基本数据类型    常用的数据类型有:    整型int:整数,一般占4个字节。其中短整型(short int)占2个字节,长整型(long int)占4个字节。                   分为有符号(signed int)类型和无符号(unsigned int)类型。数据的保存是以其补码的形式进行,正整数的补码                    与原码一致,而负数得到反码...

2018-03-08 23:16:46 209

原创 【嵌入式Linux C编程】2018.3.7 Linux C语言开发工具

嵌入式 Linux C 语言开发工具文本编辑器Vi(Vim)Vi分为3种状态:命令行模式;插入模式;底行模式。各功能区分如下:命令行模式:控制光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式或者底行模式。插入模式:只有在插入模式下,才可以输入文字,按【ESC】键可以返回命令行模式。底行模式:将文字保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。与命令行模式可以归一类。Vi...

2018-03-07 17:54:54 300

原创 【嵌入式Linux C编程】2018.3.6 Linux常用命令

什么是嵌入式系统?以应用为中心、以计算机为基础、软硬件可剪裁,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统,是将应用程序、操作系统和计算机硬件集成在一起的系统。(技术角度)是设计完成复杂功能的硬件和软件并使其紧密耦合在一起的计算机系统。(系统角度)目录结构:/:根目录。只存放目录,不存放命令;/bin:二进制(binary)可执行文件,如一些可执行命令;/dev :...

2018-03-06 19:55:34 198

空空如也

空空如也

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

TA关注的人

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