自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 资源 (2)
  • 收藏
  • 关注

原创 解决Windows/Linux(Ubuntu18) curl 使用异常

现象:可以通过 Postman 访问服务器,使用 cmd curl 访问异常(curl安装与Windows,通过cmd操作),出现 415、400 报错正确命令curl -X POST http://192.168.2.250:8080/decryptservice/activeinfo -H "Content-type:application/json" -d "{\"appId\":\"\"}"原因:windows下,需要将 -H " " 消息头用引号, 在 -d 中最外面使用 ".

2021-12-22 14:18:39 2010

原创 VC 目录配置

VC 常见的有包含目录、库目录、附加包含目录、附加库目录、附加依赖项 含目录、库目录 附加包含目录 附加库目录 附加依赖项 VC++目录:包含目录:寻找 #include<xxx.h>中xxx.h的搜索目录; 库目录:寻找.lib文件的搜索目录;C/C++:附加包含目录:寻找 #include<xxx.h>中xxx.h的搜索目录(每一项对应一个文件夹xxx,文件夹中包含了编译时所需的头文件,使用时直接#include&l.

2021-12-02 17:41:49 776

原创 Androd Studio 添加第三方库报错(一)

Androd Studio 添加第三方库报错:Android studio打开打开对应项目的build.gradle文件,在Android -> defaultConfig下添加支持的CPU类型,如下示例:defaultConfig{ ndk { abiFilters 'arm64-v8a','armeabi-v7a' } }我的修改为以下,正常defaultConfig{ ndk { .

2021-05-17 09:16:44 313

原创 百度人脸识别:人脸采集官网Demo

下图为百度人脸识别:离线采集SDK的效果图,运行之后主要的效果如下图中设置所说,主要是活体检测和采集,如果大家需要的是人脸对比和识别,那应该下载离线识别SDK(需要购买)。本文记录整个SDK运行demo时的注意事项,运行起来需要修改的地方比较多,开发文档中也说得比较清楚,但还是记录一下过程。 如果运行demo或集成时出现以下崩溃信息:将模块下的AndroidManifest.xml中的liantian库的注册包名改成您工程...

2021-04-16 15:28:40 787

转载 赋值兼容规则

赋值兼容规则是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员,而且所有成员的访问控制属性也和基类完全相同。这样,公有派生类实际就具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解决。赋值兼容规则中所指的替代包括以下的情况:派生类的对象可以赋值给基类对象。 派生类的对象可以初始化基类的引用。 派生类对象的地址可以赋给指向基类的指针。在替代之后,派生类对象就可以作为基类的对象使用,但只能使用从基类继承的...

2021-04-07 09:27:54 2180

转载 自由存储区与堆

在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区。自由存储区与堆的区别在于malloc在堆上分配的内存块,使用free释放内存,而new所申请的内存则是在自由存储区上,使用delete来释放。自由存储区与堆是否是两块不同的内存区域?划分自由存储区与堆的分界线就是new/delete与malloc/free。然而,尽管C++标准没有要求,但很多编译器的new/delete都是以malloc/free为基础来实现的。那么借以malloc实现的new,所申请的内

2021-04-06 16:10:34 5588 2

原创 什么条件下使用多态

将一个类作为非多态类型:一个函数的执行方式十分确定,不需要任何特殊处理,不希望在派生类提供特殊的实现,就应将它声明为非虚函数 该类中的所有函数都具备以上特点将一个类设计为非多态类型,意味着不希望其他类对他进行共有继承如果需要其他类对一个类进行共有继承,则应当将其设计为多态类型...

2021-02-03 13:12:30 489

原创 单实例模式

getInstance是一个函数。在java中,可以使用这种方式使用单例模式创建类的实例,所谓单例模式就是一个类有且只有一个实例,不像 objectob = new object() 的这种方式去实例化后去使用。主函数当中使用类的getInstance 函数,即可得到系统当前已经实例化的该类对象,若当前系统还没有实例化过这个类的对象。GetInstance与new区别:如Object object = new Object(),这时候,就必须要知道有第二个Object的存在,而第二个Object也常

2021-01-26 19:39:01 108

原创 MFC自定义消息

消息声明MFC要求,WM_USER以下的是系统消息,WM_USER以上为自己定义消息消息映射消息映射将消息与其对应的响应函数相互关联,消息映射的声明通常在窗口类中完成:BEGIN_MESSAGE_MAP(CDMTEXEDlg, CDialogEx) // 窗口类的名称 ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_CANCEL, &CDMTEXEDlg::OnBnClicke

2020-12-30 10:47:09 899

原创 Windows程序内部运行机制:窗口、句柄和上下文的理解 

句柄:从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄。Windows系统中定义了许多内核对象(这里的对象不完全等价于"面向对象程序设计"一词中的"对象",虽然实质上差不多),比如打开的文件,创建的线程,程序的窗口等等。这些重要的对象肯定不是4个字节或者8个字节足以完全描述的,他们拥有大量的属性。为了保存这样一个"对象"的状态,往往需要上百甚至上千字节的内存空间,那么怎么在程序间或程序内部的子过程(函数)之间传递这些数据呢?拖着这成百上千的字节拷贝来拷贝去吗?显然会浪费效率。那么怎么办?当

2020-09-22 12:05:15 1103

转载 函数命名的一些规范

驼峰命名法骆驼式命名法(Camel-Case)又称驼峰式命名法,也称小驼峰式命名法。骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。匈牙利命名法据说是一位叫 Charles Simonyi 的匈牙利程序员发明的,后来他在微软待了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。.

2020-09-17 17:51:48 1829

原创 射频卡读写器参考代码

1.建立资源管理器的上下文函数ScardEstablishContext()用于建立将在其中进行设备数据库操作的资源管理器上下文(范围)。函数原型:LONG SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext);各个参数的含义:dwScope:输入类型;表示资源管理器上下文范围,取值为:SCARD_SCOPE_USER(在用户域中完

2020-09-17 12:24:45 901

原创 串口通信数据格式

在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。串口收发数据的单位:字节 (Byte) '', 1Byte = 8 bits , 串口收发数据格式一般为 :1bit 起始位(一般为0) + 8bits 数据位(一字节) +1bit 校验位(可有可无) + 1bit结束位(一般为1)奇校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为奇数; 偶校验是指每帧数据中,包括数据位和奇偶校验位的全部...

2020-09-17 12:21:38 16462

原创 toybrick 串口权限

查看串口是否可用:对串口发送数据比如对com1口echo/dev/ttyS0查看串口名称使用:一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的ls -l /dev/ttyS*...

2020-09-17 12:19:11 133

原创 MFC Combo Box

void OnBnClickedCombo(){ int timeout; switch (m_Combo_Timeout.GetCurSel()) { case 0: timeout = 0; break; case 1: timeout = 5; break; default: break; }未完待续...

2020-09-17 12:17:00 69

原创 选择文件功能模块

void ChooseFile(){ // 设置过滤器 TCHAR szFilter[] = _T("文本文件(*.ini)|*.ini|所有文件(*.*)|*.*||"); // 构造打开文件对话框 CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, this); // 显示打开文件对话框 if (fileDlg.DoModal() == IDOK) { // 如果点击了文件对话框上的“打开”按钮,则将选.

2020-09-17 11:03:12 128

转载 MFC 线程同步

使用WaitForSingleObject函数来等待一个内核对象变为已通知状态:DWORD WaitForSingleObject(HANDLE hObject, //指明一个内核对象的句柄DWORD dwMilliseconds //等待时间); 该函数需要传递一个内核对象句柄,该句柄标识一个内核对象,如果该内核对象处于未通知状态,则该函数导致线程进入阻塞状态;如果该内核对象处于已通知状态,则该函数立即返回WAIT_OBJECT_0。第二个参数指明了需要等待的时间(毫秒),可以传递IN

2020-09-07 12:37:22 202

原创 MFC CString类型字符串转 char

1、通过CString的成员函数—GetAt() 依次获取单个字符字符串数组 memset() GetAt() void Ascii2Char(){ UpdateData(TRUE); char strbuf[1024]; memset(strbuf, '\0', sizeof(strbuf)); // attention // 通过CString的成员函数依次获取单个字符 for (size_t i = 0; i < m_InputValue.GetLength(); i.

2020-08-21 21:11:46 992

转载 strcpy_s函数/strcpy函数简介

strcpy/**描述:此类函数是用于对字符串进行复制(拷贝)。**参数: * [in] strSource:需要拷贝的字符串* [out] strDestination:拷贝完成之后的字符串* *返回值:指向 strDestination 这个字符串的指针*/char* strcpy(char* strDestination, const char* strSource);strcpy_s/**描述:此类函数是用于对字符串进行复制(拷贝)。**参数:

2020-08-21 14:59:33 5148

原创 OMPL CMakeLists.txt (二)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/config.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ompl" COMPONENT ompl)INSTALL指令安装的需要有两种,一种是从代码编译后直接make install安装,一种是打包时的指定目录安装。这里需要引入一个非常有用...

2020-08-19 20:58:35 275

原创 C++11 make_shared(智能指针初始化)

智能指针可以智能地知道它是不是最后一个指向对象的指针,并且据此可以实现由对象的最后一个指针来决定对象的销毁。C++11提供两种智能指针(定义在<memory>):1、shared_ptr可以用来实现共享所有权的概念。多个智能指针可以引用同一个对象,当最后一个智能指针销毁时,对象销毁。为了使智能指针能适用于更复杂的情景,weak_ptr,bad_weak_ptr和enable_...

2020-08-19 20:57:24 1626

原创 CAN 快速入门学习 四

在电子通信领域,波特(Baud)即调制速率,指的是有效数据信号调制载波的速率,即单位时间内载波调制状态变化的次数。它是对符号传输速率的一种度量,1波特即指每秒传输1个符号。例如:UART每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。比特率:即单位时间内传送的二进制位数; 波特...

2020-08-19 20:55:32 108

原创 数组有结束标识符吗?

数组在声明或初始化时已经给出了大小,所以不需要结束标识符 字符数组并不要求它的最后一个字符为 '\0' 对于字符串数组,其数组长度(sizeof()可得)往往大于其实际长度,为了检测字符串的实际操作和打印,往往在字符串数组最后人为地加上一个 '\0'...

2020-08-19 20:29:39 4943 1

原创 C++ 乱码

BYTE var[4] = {'a','b','c'};//TRACE("var= %s",var);m_OutputValue = (CString)var;MessageBox(m_OutputValue);var[4]可以正常显示,var[3]出现乱码

2020-08-19 08:43:21 564

原创 char **  与char  * a[ ] 

char *a [ ]由于[ ] 的优先级高于* 所以a先和 [ ] 结合,他还是一个数组,数组中的元素才是char * ,前面讲到char * 是一个变量,保存的地址。如 char *a[ ] = {"China","French","America","German"};数组中的元素是字符串sizeof(a) = 16,字符串常量的本质是地址,a 数组中的元素为char * 指针,指针变量占四个字节,那么四个元素就是16个字节#include <stdio.h>int ma..

2020-08-19 08:40:11 285

原创 将CString字符串转换为char[]或char*

// 将CString字符串转换为char[]或char*char* chs = m_InputValue.GetBuffer(); //from CString to char*//int Len = strlen(chs) / sizeof(char);strcpy_s(buf, chs);m_OutputValue += buf;

2020-08-18 13:49:45 245

原创 加载静态链接库lib

需要引入两个文件,如下所示#include "FRI_Reader.h" #pragma comment(lib,"FRI_Reader.lib")

2020-08-17 08:58:47 91

原创 c 和c++ 中的struct有什么不同

c和c++ 中struct的主要区别是c中的struct不可以含有成员函数,而c++ 中的struct可以 c++ 中struct和class的主要区别在于默认的存取权限不同,struct默认为public ,而class默认为private

2020-08-14 08:43:49 743

原创 sizeof 和 strlen 的区别

对于指针,sizeof 操作符返回这个指针占的空间,一般是4个字节; 对于一个数组,sizeof 返回这个数组所有元素占的总空间。 而strlen不区分是数组还是指针,就读到 \0 为止返回长度,并且strlen是不把\0计入字符串的长度的。sizeof:sizeof 是运算符,在头文件中 typedef 为 unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。strlen:strlen 是函数,..

2020-08-14 08:42:28 74

原创 &a+1 与 &a[0]+1

对于数组a,数组首地址是&a,数组首元素地址是&a[0],这两者数值上相等,但是在进行地址加减时,表示的意义不同:数组名可以认为是一个指针,它指向数组的第 0 个元素。在C语言中,我们将第 0 个元素的地址称为数组的首地址。数组名的本意表示整个数组,也就是表示多份数据的集合,但在使用过程中经常会转换为指向数组第 0 个元素的指针,所以上面使用了“认为”一词,表示数组名和数组首地址并不总是等价。 &a+1,其中"1"的大小指的是整个数组的所占大小,例如数组a[4],&a

2020-08-12 21:20:15 2807 3

原创 LoRa

LoRa与NB-IoT是最有发展前景的两个低功耗广域网通信技术 。LoRa的诞生比 NB-IoT 要早些,2013年8月,Semtech公司向业界发布了一种新型的基于1GHz以下的超长距低功耗数据传输技术(Long Range,简称LoRa)的芯片。其接受灵敏度达到了惊人的-148dbm(无线信号的强度单位,通常用来表示无线信号强度的大小),与业界其他先进水平的sub-GHz(指小于1GHz的无线电频率)芯片相比,最高的接收灵敏度改善了20db以上,这确保了网络连接可靠性。  LoRa主要在全球免...

2020-08-12 20:05:47 736

原创 size _t 类型介绍

size _t为了增强程序的可移植性,便有了size_t,不同系统上,定义size_t可能不一样。经测试发现,在32位系统中size_t是4字节的,在64位系统中,size_t是8字节的,这样利用该类型可以增加程序移植性。...

2020-08-12 20:04:39 299

原创 自动获取组合框中的内容

pReader = (LPTSTR)mszReaders;while (*pReader != '\0'){ if (nReaders < 2) //使用系统中前2个读卡器 pReaderName[nReaders++] = pReader; m_ComboDevice.AddString(*pReaderName); TRACE("Reader:%s\n", pReader); pReader = pReader + strlen(pReader) + 1; //下一个.

2020-08-12 20:04:02 326

原创 MFC文本控件内容自动滚动和清除的效果

UpdateData(FALSE);m_RecInfo.LineScroll(m_RecInfo.GetLineCount());// 数据行达到20后,自动清空// 数据过多,影响接收速度,显示是最费CPU时间的操作if (m_RecInfo.GetLineCount() > 300){ m_Result.Empty(); UpdateData(FALSE);}注意:UpdateData()函数的位置,如果该函数放到最后的话,是达不到滚动到底部的效果的...

2020-08-12 19:51:53 390

原创 SetTimer函数的用法

SetTimer函数的用法 ,用WM_TIMER来设置定时器SetTimer这个API函数的原型UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMERPROC lpTimerFunc // 回调函数 ); SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的...

2020-08-12 19:50:56 7505

转载 C 库函数 - strcpy()

描述C 库函数char *strcpy(char *dest, const char *src)把src所指向的字符串复制到dest。需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。声明下面是 strcpy() 函数的声明。char *strcpy(char *dest, const char *src)参数dest-- 指向用于存储复制内容的目标数组。 src-- 要复制的字符串。返回值该函数返回一个指向最终...

2020-08-04 08:33:34 127

原创 Java 集合和数组的区别

集合专门用于存放对象,数组可以存放基本类型等数据 集合中的数据可以是不同类,数组中只能存放同种类型的数据 数组一旦被定义,不可以修改;集合中的数据可以被修改

2020-08-01 16:58:47 77

原创 函数:sprintf()

sprintf()函数用于将格式化的数据写入字符串,其原型为: int sprintf(char *str, char * format [, argument, ...]); 参数:str为要写入的字符串 format为格式化字符串,与printf()函数相同 argument为变量sprintf 最常见的应用是把整数打印到字符串中,所以spritnf 在大多数场合可以替代itoa。将一个整数变为16 进制字符串,格式为左边补0 等宽,需在表示宽 度的数字前面加个0 s...

2020-08-01 16:56:32 93

转载 C 库函数 - strcat()

描述C 库函数char *strcat(char *dest, const char *src)把src所指向的字符串追加到dest所指向的字符串的结尾。声明下面是 strcat() 函数的声明。char *strcat(char *dest, const char *src)参数dest-- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。 src-- 指向要追加的字符串,该字符串不会覆盖目标字符串。返回值该函数返回一个指向最终的目标...

2020-08-01 16:55:53 113

转载 c++中的c_str()用法

语法: const char *c_str()c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同。 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 char* c; string s = "1234"; c = s.c_str(); 最好不要这样,c最后指向的内容是垃圾,因...

2020-08-01 16:53:11 122

android-support-v4.jar

解决android-support-v4.jar无法找到checkSelfPermission

2021-02-22

matlab rrt2D/3D

Matlab代码RRT2D/3D 实现,适用于初学者对RRT2D/3D实现原理的初步学习

2018-12-04

空空如也

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

TA关注的人

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