- 博客(37)
- 资源 (15)
- 收藏
- 关注
原创 VS2013文件编码是utf-8,程序运行的时候中文常量的编码为GBK问题的解决办法
很奇怪的一个问题,VS2013通过高级保存选项,将文件编码设置为UTF-8(如下图所示),但在项目中,把中文常量写入文件,发现该中文常量还是GBK编码。估计是在程序运行过程中,VS自动把中文常量保存在内存中,造成中文常量实际在程序运行过程中是以GBK编码的形式存在。解决办法:在cpp文件中加上以下代码,相当于告诉编译器,我这个文件的中文以utf-8编码格式来读取#pragma execution_character_set("utf-8")...
2021-07-22 16:01:23 1130
原创 编程规范之面向对象(OOD)
编程中有五个最基本的设计原则,简称SOLID,具体含义如下:S = 单一责任原则O = 开闭原则L = Liscov替换原则I = 接口隔离原则D = 依赖倒置原则1、单一责任原则(SRP原则)该原则规定,每个类应该有一个责任,这个责任应该由类完全封装,它的所有服务应向责任狭义看齐,即一个类或一个模块有且只有一个理由去改变。2、...
2021-06-12 23:48:39 410
原创 Ubuntu系统界面适应vmware虚拟机大小进行显示
会有这样一种情况,vmware虚拟机中的Ubuntu系统已经设置分辨率与电脑的分辨率一致,但在vmware虚拟机未进行全屏显示,且Ubuntu系统显示只居中占界面的一小部分。需要检查一下vmware的配置是否为”自动适应客户机“。选择这个配置,则可以实现系统界面自适应vmware的大小...
2021-06-06 22:30:48 559 1
原创 多屏幕拓展情况下,Qt窗口的move效果与实际坐标不一致
当屏幕具有多个拓展的情况下,可通过Qt的以下的方法获得拓展屏幕实际的大小,注意索引从0开始#include <QApplication>#include <QDesktopWidget>QDesktopWidget *desktopWidget = QApplication::desktop();QRect screenRect = desktopWidget->screenGeometry(0); //获取拓展屏幕1的大小具有多个屏幕拓展的实际场景中,发
2021-05-30 16:02:51 1463
原创 Qt初始化时setStyleSheet的值无效
问题:在初始化时候,通过QFont获取字体大小时,返回的大小值不是StyleSheet中的值解决办法:初始化时,界面进行show()的情况下,设置的样式值才真正起效,
2021-05-30 14:58:32 599
原创 关于VS中C++字符串常量的编码问题
无论文件是ANSI编码还是UTF-8有BOM格式编码(注意windows下不要使用utf-8无BOM格式编码,这种编码情况下的字符串常量转换有问题),字符串常量在内存中的编码都为ANSI编码,对应到windows平台就是GBK编码。 如果需要指定C++中的字符串常量编码格式为utf-8编码,可以使用C++11的u8特性,如:char tmp[128] = u8"中...
2020-05-07 15:17:20 1344
原创 C++获取13位的时间戳(Linux平台和windows平台)
Linux平台:static int64_t GetUnixTime(){ int64_t times = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count(); return times;}w...
2020-04-27 14:03:57 2691
原创 sqlite3数据库迁移数据表
假设表table1存在test1.db,表table2存在test2.db,现需要将table2迁移至test1.db中。1、在test1.db中,从File—>Attach Database进去,选择test2.db文件,将test2.db中所有的表添加进test1.db中,如下图1所示;2、执行语句create table table2 as select * from t...
2020-04-27 13:52:28 1352 1
原创 Linux平台下gsoap的400错误
仅提供个人的解决办法供大家参考;错误情况: 使用gsoap根据wsdl描述生成相应接口,在windows平台下调用通信成功,在Linux下调用接口时则返回400错误;解决方法: 在makefile文件中将WITH_NONAMESPACES宏的定义去掉;...
2020-04-03 09:04:10 305
原创 QML控件功能:Text循环显示内容
QT的版本:5.12信息循环来回显示的效果图如下:对应的组件实现如下: Rectangle { x:parent.width * 0.4 y:parent.height*0.2 width : parent.width*0.4; height : parent.height*0...
2019-10-26 14:39:08 1450
原创 DBXML
官网上提供多种版本可供下载,下面放上大招:Oracle Berkeley DB Downloads*.msi 是二进制编译好的文件,*.zip 和*.tar.gz 是windows 和linux压缩的未编译的源码文件dbxml-2.3.10版本下载传送门:https://download.csdn.net/download/qq_24038299/11172779分享另一关于dbx...
2019-05-11 17:01:31 277
原创 Linux下获取ms的时间
void getCurrentTime(tm *iCurrentTime,long &iMilliSecond) { timeval tv; time_t timep; gettimeofday(&tv, NULL);//获取当下精确的s和us的时间 time(&timep);//获取从1...
2019-04-03 20:02:16 3320
原创 C/C++检测路径是否存在并创建
功能:根据传入的文件路径进行检测,对于不存在的路径进行创建,可兼容带有文件名和不带文件名的情况 如:D:/1/2/3/test.jpg和D:/1/2/3#include "stdafx.h"#include <string>#include "direct.h"#include <sys/stat.h> using namespace std;string&...
2018-03-29 09:29:57 5179
原创 实现一个类的成员函数作为回调函数
通过C++11的bind和function实现类的成员函数作为回调函数下面是一简单例子:#include "stdafx.h"#include <functional>using namespace std;using namespace std::placeholders;typedef function<bool()> OnPrintf;class A{...
2018-03-22 20:22:58 437
原创 MFC利用Halcon显示图片
工具说明:Halcon10,VS2013,利用Picture Control控件进行图片显示包含的头文件:#include "HalconCpp.h"using namespace Halcon;需要包含的库路径:halconcpp.libvoid CHalconWndShowDlg::OnBnClickedOpen(){ HTuple HWindowID; HTuple newHWindo...
2018-03-22 19:51:38 1896
原创 C++获取指定路径下的所有文件(windows和Linux版)
递归获取文件夹中的所有文件的完整路径#include <io.h>#include <iostream>#include <vector>using namespace std;void getFiles(string path, vector<string>& files){ //文件句柄 long hFile =...
2018-03-20 16:54:19 5227
原创 利用opencv和图形计算求取图形交集
参考资料:https://www.cnblogs.com/dwdxdy/p/3232110.htmlVS2013实现的简单工程:http://download.csdn.net/download/qq_24038299/10260393效果如下:
2018-02-26 22:19:32 7995
原创 CrashRpt学习内容
CrashRpt是轻量级的开源错误报告库,是VS的一个工程,使用的时候只需要包含dbhelp.dll、CrashRpt.dll、Crashsender.exe三个文件在工程路径下函数接口说明:http://crashrpt.sourceforge.net/docs/html/group___crash_rpt_a_p_i.htmltypedef int( * PFNCRASHCALLBAC
2017-11-12 09:54:55 2428
原创 windows下的多线程简单使用
CreateThread函数的原型:HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DW
2017-11-11 11:03:02 2873
原创 编程笔记记录
1、CRT:Visual C++ C RunTime Lib,C运行时库,C程序运行时需要这些库中的函数,没有该库,main()和exit()不会被调用;
2017-11-11 09:21:07 225
原创 JAVA通过JNI调用C#dll方法说明(包含示例)
Java调用C#的dll是通过C++作为桥梁,JNI—>C++的dll(clr方式运行)—>C#的dll 以下为本次测试的配置环境: 系统:win7 64位 Java开发环境(均为64位):JDK1.8、eclipse C++开发环境:VS2015 整个工程的连接:
2017-03-29 09:53:41 4255
原创 JVM崩溃错误:发生在Problematic frame C [KERNELBASE.dll+0xc54f]
在进行JNI调用C#dll测试的时候,JAVA编译运行工程一直提示以下错误,换另一台电脑运行,发现没有出现以下错误,所以怀疑系统的KERNELBASE.dll被修改过,出现了加载错误。解决方法:大家可换一台电脑试一下,或者重新下载KERNELBASE.dll更新到System32目录下,更换之前最好先对系统原有KERNELBASE.dll进行备份,免得出现意外!
2017-03-29 09:52:30 10816
原创 JAVA文件
package com.hui;import com.hui.*;public class MainWindow { public static void main(String[] args) { TestJNI t = new TestJNI(); t.isInLibrary(); t.addData("01958", 100); System.out.printl
2017-03-24 18:00:34 248
原创 SQLite判断一个表是否存在
SQL查询语句:SELECT COUNT(*) as CNT FROM sqlite_master WHERE type = 'table' AND name = 表名;利用executeQuery执行SQL的查询语句,在返回值ResultSet中根据CNT来获取表的数目,利用getString(“CNT”)来获取表的数目,再根据表的数目来判断表是否存在
2017-03-19 12:25:47 4753 1
原创 JAVA的Scanner简介
Scannner是基于正则表达式的文本扫描器,可以从文件、输入流、字符串中解析出几本的类型值和字符串值。Scanner使用空白(空格、Tab空白、回车)作为多个输入项之间的分隔符,设置分隔符使用useDelimiter(String pattern)。用于扫描的两个方法:1、hasNextXxx():判断是否有下一个输入项,Xxx可以是Int、Long等代表基本数据类型的字符串。如果只
2017-03-15 09:42:23 460
原创 eclipse下的JAVA工程使用RXTX开发配置
windows系统下:1、直接在工程下创建lib文件夹2、将RXTX开发包里面的三个文件放入lib中(rxtxSerial.dll,rxtxParallel.dll,RXTXcomm.jar)3、点击project -> properties -> Java Build Path -> Libraries -> Add External JARS... -> (选择lib里面的RXTX
2017-03-08 09:51:54 2193
原创 C++11实现多线程电梯运行
本工程利用C++11的线程类进行多线程的操作,涉及到线程的互斥量的使用;简单记录一下整个工程的关键内容: 主要是涉及到两个类的抽象,一个为电梯间,一个为电梯,一个电梯间类包含两个电梯类的对象;电梯间选择电梯策略:a)判断用户的本身请求状态是否与电梯的状态一致(UP or DOWN),满足后判断电梯的当前楼层与请求的楼层的层高关系,比如说:client从8楼到16楼,但是目前电梯
2016-11-19 22:32:36 2189
原创 C++重载string类的+=运算符号
class MyString(){ private: char *str; public: MyString(char *s) { str = new char(strlen(s)+1); strcpy(str,s); } ~MyString() { delete[]str; } MyString &operator = (MyString
2016-11-17 21:01:07 3245 2
原创 学习随记
1、unsigned short int i=0;i=i-1;该类型在32位的平台下大小是2个字节,其无符号字节的范围为0~65535,i在减1后,内存中的数据变为0Xffff,结果为655352、利用位运算符交换两个数(优点:忽略中间变量,只能用于相同类型数的交换):a^=d;b=^a;a^=b;3、C语言中的整数自动转换原则:当表达式中含有有符号类型和无符号类型时,所有的操作数都自动转
2016-11-17 10:52:20 413
原创 单片机解码接收
#include#define CODENUM 10 //接收的码长度#define INTERVAL 25000 //码之间的判决时间长度#define MAX 65535 sbit port=P1^0; //输入端口 sbit out
2016-11-10 22:47:48 2796
原创 lambda表达式
lambda表达式的优点: * 声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外填写一个命名函数或函数对象 * 简洁 * 在需要的时间和地点实现功能闭包,程序更加灵活表达式的基本概念以及基本用法 定义一个匿名函数,可以捕获一定范围内的变量,其语法可以表达如下: [capture] [params] opt->ret {body;}; 其
2016-11-10 15:40:43 377
原创 C++11多线程
互斥量:std::mutex:独占的互斥量,不能递归使用std::timed_mutex:带超时的独占互斥量,不能递归使用std::recursive_mutex:递归互斥量,不带超时功能std::recursive_timed_mutex:带超时的递归互斥量 这些互斥量的基本接口很相似,一般用法是通过lock()方法来阻塞线程,直到获得互斥量的所有权,在线程获得互斥量并完成任务后,必
2016-11-10 13:15:35 261
原创 ffmpeg实现电脑屏幕录像(opencv实现滤镜)和音频录取
利用来源库ffmpeg里集成的gdigrab工具进行屏幕的获取,具体关于ffmpeg的使用方法请见其官网的说明http://ffmpeg.org/以下是获取视频来源的部分代码:int VideoInput::getVideoInput(){ AVInputFormat *ifmt; pFormatCtx_Video = NULL; ifmt = av_find_input_for
2016-11-09 14:22:32 6903
原创 常用排序算法总结(纯文字总结)
一、选择排序a.简单选择排序:即利用一个大小为n的数组进行存储,每次从待排数据中取出最小值,直到n次,最后获取到一个从小到大的排序结果。b.树形选择排序:利用完全二叉树,待排元素作为叶节点,选择两个节点中较小的作为其父节点,递归上去,则在根节点出获取到最小值,然后存放入结果数组中,然后将 该元素的值改为无穷大,递归上述过程,获取到其他的节点,直到最终获取到n个节点。
2016-11-08 21:05:15 349
转载 大Ο表示算法的时间复杂度
求解算法的时间复杂度的具体步骤是: ⑴ 找出算法中的基本语句; 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 ⑵ 计算基本语句的执行次数的数量级; 只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的
2016-11-08 10:56:49 261
原创 服务器I/O复用模型实现
Linux下实现I/O服用的系统调用主要有select、poll、和epoll。select和poll的原理实现基本一致,都是在一定的指定时间内监听用户感兴趣的文件描述符上的可读可写和异常等事件,返回的是整个用户注册的事件集合,需要从整个用户表中轮询寻找就绪的文件描述符。epoll的实现是往内核的事件表写入事件,直接返回的是触发的事件,此方法适用于连接数较多,活动连接较少的情况,当
2016-11-07 15:15:54 463
音频开发第三方库alsa-lib-1.1.1
2021-06-18
SQLite3的VS2013编译工程
2018-09-30
opencv和图形计算求取图形交集
2018-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人