- 博客(45)
- 收藏
- 关注
原创 error: converting to execution character set: Illegal byte sequence
如果使用Qt Creator出现在个问题,先将文件的编码格式设置未GBK格式在.pro文件加入QMAKE_CFLAGS += -fexec-charset=UTF-8 -finput-charset=GBKQMAKE_CXXFLAGS += -fexec-charset=UTF-8 -finput-charset=GBK保存,qmake在编译就可以了...
2021-06-15 19:27:10
1627
原创 (github) Failed to connect to github.com port 443:
先确认自身网络能否ping同www.github.com 如果无法ping通,则网络存在问题,先解决网络问题尝试关闭代理服务器git config --global https.proxy http://127.0.0.1:1080(设置代理服务器)git config --global --unset http.proxy(关闭代理服务器)如果还不行可以关闭防火墙sudoufw default allow : 允许所有端口被访问sudoufw default deny ...
2021-04-13 15:22:35
389
原创 Qt 中输出const char* 和 QString 的差异
如果在需要保存在本地文本的文件如ini文件和json文件等,如果使用QString 的话保存中会出现"xxxx"如果使用的是const char * 则输出的文本是不带冒号的。
2021-03-29 16:56:54
759
原创 匈牙利命名法:
匈牙利命名法:基本原则是:变量名=属性+类型+对象描述。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。 例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。属性一般是小写字母+_:g_
2021-03-29 15:37:17
632
翻译 Qt creator 一打开就开始问题
前段时间还好好的,就是无意中运行了一段代码(具体是什么我也不记得了),然后一打开Qtcreator就无响应,都重装了三四遍了,而且安装路径正常,没有中文或空格,已经重装了三四遍了,安装包没有问题。查了很多资料分享一下心得https://stackoverflow.com/questions/50842780/qt-creator-not-responding-upon-startup-for-a-few-minutes关闭之后重启就没问题了。如果还有这个问题,则可能与电脑中的某.
2021-03-29 14:58:07
165
原创 CANopen协议中文文档
CANopen 协议下载(https://github.com/CANopenNode/CANopenNode)CANopenNodeCANopenNode是免费和开源的CANopen协议栈。CANopen是建立在CAN基础上的嵌入式控制系统的国际标准化(EN 50325-4) (CiA301)高层协议。有关CANopen的更多信息,请参见http://www.can-cia.org/CANopenNode是以面向对象的方式用ANSI C编写的。它运行在不同的微控制器上,作为独立..
2021-03-29 09:14:17
153792
原创 工业通讯阶段学习总结
个人:在做工业通讯开发时,要发时时刻刻分清楚通讯协议和应用层协议(本人是上位机软件开发),作为一个软件开发,只需要关心应用层协议,实现PC与外部设备通讯的方式无非就CAN接口,串口和网口,不要被太多的专业名词吓到,比如CANopen协议,你只要按照CANopen的协议,按照要求组装报文,通过调用接口将组装好的字符文本通过接口传输过去就行,如果是串口就用串口对应的接口去调用,如果是网口就调用socket,如果是CAN就用CAN接口卡去实现。通讯协议包含设备与设备的整个通讯流程,包含物理层、数据..
2021-03-27 20:35:41
498
原创 OSI网络模型各层协议
1.物理层: 物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输;eg:RJ45等将数据转化成0和1; 2.数据链路层: 数据链路层通过物理网络链路提供数据传输。不同的数据链路层定义了不同的网络和协 议特征,其中包括物理编址、网络拓扑结构、错误校验、数据帧序列以及流控;可以简单的理解为:规定了0和1的分包形式,确定了网络数据包的形式; 2.1 Point-to-Point Protocal——PPP点到点。 2.2 Ethernet——以太网。 2.3 High-L..
2021-03-23 11:14:07
1109
原创 CANopen上位机通讯相关资料(乱)
PDO 属于过程数据,即单向传输,无需节点回应CAN报文来确认,从通讯术语上来说属于”生产消费“模型SDO 属于服务数据,有指定被接收节点的地址(Node-ID),并且需要指定的接收节点回应 CAN 报文来确认已经接收,如果超时没有确认,则发送节点将会重新发送原报文。这种通讯方式属于常见的“服务器客户端”的通信模型,即我们通常所说的轮询式。.对象字典 OD(Object dictionary) CANopen 对象字典(OD...
2021-03-22 21:51:52
798
原创 Ubuntu安装搜狗输入法
如果没有安装fcitx先sudo apt-get install fcitx 然后再打开sudo dpkg -i sogoupinyin_版本号_amd64.deb(https://pinyin.sogou.com/linux/?r=pinyin)点这个网页直接下载安装完之后出现这个界面,如果没有请重启点击Configure看是否有sougoupinyin的选项,如果没有点+号将sougoupinyin放到第一项验证是否启动打开一个...
2021-03-19 16:47:57
145
原创 index out of range 问题记录
QStringList list = it->R1.split("::");if(list.empty()){ qDebug() <<"list is null"; return;}for(int i=0;i <=list.size();i++){ qDebug() <<list.size(); qDebug() <<list[i]; //ui->qTableWidget->..
2021-03-17 09:33:06
926
原创 windows开发socket 简易通讯
服务器端#include <WinSock2.h> // 由于版本问题WinSock2和windows的顺序不能颠倒#include <windows.h>#include <stdio.h>#include <iostream>#pragma comment(lib,"ws2_32.lib") //需要导入库#define _CRT_SECURE_NO_WARNINGSstruct DataPackege{ int age.
2021-03-13 15:44:01
218
1
转载 qt的模块介绍(转载)
qt的模块介绍Qt 基础模块分为以下几个:o Qt Core,提供核心的非 GUI 功能,所有模块都需要这个模块。这个模块的类包括了动画框架、定时器、各个容器类、时间日期类、事件、IO、JSON、插件机制、智能指针、图形(矩形、路径等)、线程、XML 等。所有这些类都可以通过 头文件引入。o Qt Gui,提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等。这些类一般由 Qt 用户界面类内部使用,当然也可以用于访.
2021-03-13 10:28:09
1182
原创 在Qt Creator 中使用cmake做工程管理
前言:Qt Creator 中已经提供强大的工程管理文件,但是由于Qt Creator在使用中流行程度不高,导致相关资料比较少,遇到问题比较难解决。为了跨平台的稳定型,建议使用cmake多自己的工程目录进行管理。简单演示一下如何在ubuntu 中使用Qt Creator(4.5.2)创建一个cmake管理的工程部分步骤省略生成如下目录添加一个按钮写一个触发函数打开文件所在目录并创建build 和CMakeLists.txt文件夹和文件然后vi CM
2021-03-13 10:08:57
1000
1
原创 Error while building/deploying project untitled2 (kit: Desktop Qt 5.13.1 MinGW 32-bit) When executin
出现这种问题一般是路径中有中文将中文去掉便可以正常编译
2021-03-08 10:13:40
1143
原创 Go爬虫小项目
import ( "fmt" "log" "net/http" "github.com/PuerkitoBio/goquery" //想安装第三方库(go get //github.com/PuerkitoBio/goquery) )func main() { authors := "https://so.gushiwen.org/authors" //找到目标的url res, er.
2021-03-07 13:06:22
147
原创 Go语言练习
package mainimport ( "fmt" "unsafe")const ( a1 = "abc" b1 = len(a1) c1 = unsafe.Sizeof(a1))func main() { const LENGTH int = 10 const width int = 5 var area int const a, b, c = 1, false, "str" area = LENGTH * width fmt.Printf("面积为:%d", a.
2021-03-07 00:56:00
249
原创 Go语言安装与搭建保姆级教程(windows +Go+VSCode + go tools)
一. 安装Go官网(自己百度)国内镜像网站(推荐)https://golang.google.cn/dl/等待下载(2)安装(3)一直next 然后选择自己需要的安装目录(4)然后选择install 等待安装(5)安装后点击finish(6)打开命令行工具(Alt+ R 输入CMD)(7)输入go version(8)出现这个界面证明安装成功(9)如果没有出现这个,可能是环境变量添加失败检查是否有此环境变量,如果没有自行添加(相..
2021-03-06 17:11:48
923
原创 ubuntun普通用户调用root的库文件
工作原因,需要在C++调用annaconda的库文件,但是普通用户无法链接到root用户的库文件(一直报 /usr/bin/ld cannot find /root/annacaonda/lib/libpython.3.7.m.so)目前想到的解决方案cplibpython.3.7.m.so/home/xx/#更改链接路径target_link_libraries( xxxx /home/xx/libpython.3.7.m.so)...
2021-03-03 11:24:21
384
1
原创 C++新特性 weak_ptr的提出及解决循环引用的思路
/* C++新特性 weak_ptr的提出及解决循环引用的思路*/#include <memory>/* 问题1: 为什么会存在强弱指针计数 弱指针不增加强指针的引用次数 ,弱指针使用前需要lock()增强,强指针引用次数增加 weak_ptr_uses_count 一般结合强智能指针使用,它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理 的是强引用的 shared_ptr. weak_ptr只是提供了对管理对象的一个访问手段;weak_.
2021-02-28 22:38:49
296
2
原创 智能指针的实现
//智能指针://1.用起来像指针//2.会自己对资源进行释放#include <stdafx.h>#include <iostream>#include <cstring>using namespace std;class student{public: student(); ~student(); void test() { cout << "Student" << endl; m_nSex = 1; }.
2021-02-28 22:18:42
129
原创 C++新特性 shared_ptr与weak_ptr
/* shared_ptr 与weak_ptr*/#include <memory>#include <iostream>void foo_construct(){ int * p = new int(3); std::shared_ptr<int> sptr(p); std::shared_ptr<int> sptr2(new int(4)); std::shared_ptr<int> sptr3 = sptr2; //.
2021-02-28 21:13:59
258
1
原创 STL 容器的常用操作
/* deque 队列*/#include <iostream>#include <deque>#include <list>#include <algorithm>using namespace std;int main01(){ deque<int> a; a.push_back(2); //从后进 a.push_back(3); a.push_back(4); a.push_front(1);//从前面进 .
2021-02-28 01:28:29
104
1
原创 C++新特性 unique_ptr的使用
/*C++新特性 unique_ptr的使用unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,独享被管理对象指针所有权的智能指针。unique_ptr对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。unique_ptr具有->和*运算符重载符,因此它可以像普通指针一样使用。*/#include <iostream>#include <memory>#include <v.
2021-02-28 00:51:26
545
原创 C++新特性 引用计数
/*智能指针 问题: C++中最令人头疼的问题就是强迫程序员对申请的资源进行管理,容易内存泄漏 C++需要自己管理堆内存的申请和释放 int * p= new int; 解决思路: 利用C++中一个对象出了其作用域会被自动析构,因此我们只需要在构造函数的 时候申请空间,而在析构函数的时候释放空间,这样就减轻程序员在编码过中,考虑资源释放的问题了RAII std::shared_ptr 强指针 std::unique_ptr std::weak_ptr 弱指针 引用计数 深拷.
2021-02-28 00:12:20
151
原创 C++新特性 函数对象包装器function与bind
#include <functional>//函数对象包装器/* 加上头文件#include <functional> 1.为函数提供了一种容器(封装) 2.支持4种函数的封装 2.1普通函数 2.2匿名函数 2.3类的成员函数 2.4仿函数(重载了()运算符的函数)*/using namespace std;class Test{ public: int test01(int n) { return n; } //仿函数 .
2021-02-27 16:59:05
181
原创 C++新特性 lambda表达式与匿名函数
//C++新特性 lambda表达式与匿名函数/* Lambda是C++11最重要的特性之一,实际上就是提供了一个类似匿名函数的特性,而匿名函数则是一个函数,但是 又不想费力去命名一个函数的情况下使用的。这样的常见其实很多,所以匿名函数几乎是现代编程语言的标配 [捕获列表] (参数列表) mutable(可选) 异常属性(throw) -> 返回值类型 { 函数体 } [caputrue] (params) opt ->ret { body } */int fo.
2021-02-27 15:42:12
199
1
原创 C++新特性 强制转换reinterpret_cast
//C++新特性 强制转换const_cast/* 强制类型转换时具有一定风险的,有的转换并不一定安全,如果把整数数值转换成指针,把基类指针转换成派生指针 把函数指针转换成另外一种函数指针,把常量指针转换成非常量指针等 1.const_cast 只针对指针,引用,this 去除const属性 2.static_cast 基本等价于隐式转换的一种类型转换运算符,可使用于需要明确隐转换的地方 3.reinterpret_cast 具备虚函数的基类与派生类之间的指针或引用的转换 4.d.
2021-02-27 15:10:21
649
原创 C++新特性 强制转换dynamic_cast
//C++新特性 强制转换const_cast/* 强制类型转换时具有一定风险的,有的转换并不一定安全,如果把整数数值转换成指针,把基类指针转换成派生指针 把函数指针转换成另外一种函数指针,把常量指针转换成非常量指针等 1.const_cast 只针对指针,引用,this 去除const属性 2.static_cast 基本等价于隐式转换的一种类型转换运算符,可使用于需要明确隐转换的地方 3.reinterpret_cast 具备虚函数的基类与派生类之间的指针或引用的转换 4.d.
2021-02-27 14:52:09
186
转载 cpp和hpp的区别(转载)
原文链接:https://blog.csdn.net/Qzx9059/article/details/89210571c++中 cpp和hpp我们可以将所有东西都放在一个.cpp文件内,编译器会将这个.cpp编译成.obj,即编译单元。一个程序可以由一个编译单元组成,也可以由多个编译单元组成。一个.cpp对应一个.obj,然后将所有的.obj链接起来(通过一个叫链接器的程序),组成一个.exe,即程序。如果一个.cpp要用到另一个.cpp定义的函数怎么办,只需在这个.cpp中写上它的函数声明。 ...
2021-02-27 10:04:12
3515
原创 C++新特性 强制转换static_cast
C++新特性 强制转换static_cast/* 强制类型转换时具有一定风险的,有的转换并不一定安全,如果把整数数值转换成指针,把基类指针转换成派生指针 把函数指针转换成另外一种函数指针,把常量指针转换成非常量指针等 1.const_cast 只针对指针,引用,this 去除const属性 2.static_cast 基本等价于隐式转换的一种类型转换运算符,可使用于需要明确隐转换的地方 3.reinterpret_cast 4.dynamic_ca...
2021-02-27 00:20:43
1050
原创 C++新特性 委托构造和继承构造
class Base{public: int value1; int value2; int value3; //无参数构造 Base() { value1 = 1; } Base(float f) { value3 = f; } //在执行有参构造函数之前,先构造无参构造,只能委托构造一个 Base(int value) :Base() //委托构造Base(),Bas(int value) :Base(f) { value2 = 2; }};//继.
2021-02-26 22:08:07
1157
原创 C++新特性 迭代器及类型推导auto
int main(){ int arry[5] = { 1, 2, 3, 4, 5 };//一旦申请,不在动态扩增 int * pArry = new int[5]; //容器--动态数组,不用指定大小,会根据数组当前动态调整 std::vector<int> v;//创建动态数组,无需声明大小 v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); v.push_back(5); //.
2021-02-26 21:48:47
1230
原创 华为C++规范简版(未完成)
1.常量 1.1使用常量取代宏 #define MAX (20) //不好的例子 const int MAX =20 //好的例子 1.2一组相关的常量应定义为枚举 1.2.1编译前检查变量 1.2.2视情况赋值 1.2.3尽量避免枚举重复,如必须重复用已经定义的枚举来修饰 enum Color{black,blue} 1.3不相关的常量,即使取值不一样,也必须分别定义(尽可能使用co...
2021-02-23 17:07:54
1687
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人