- 博客(53)
- 资源 (3)
- 收藏
- 关注
原创 VS 自动化编译
QQ:2967732156“C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.com” E:/Pro/Test.sln /rebuild “Release”“C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.com”E:/Pro/Test.sln/rebuild“Release”中间空格连接devenv.com和
2021-08-24 18:02:17
424
原创 QShareMemory实现应用的单一运行
QQ:2967732156拿到一个应用的开发,第一个考虑的问题是:该应用是不是需要单一运行?诸如,涉及到串口,网络通信,数据库开发,通常此类应用程序都是单一运行的。QT提供了QShareMemory,可以简单且高效的实现单一应用的功能。第一次运行时,应用中创建一块共享内存,第二启动应用,可以访问这块内存,那就说明已经有应用在运行了代码实现如下:#include"QApplication.h"class QSharedMemory;class SingleApplication : pu
2021-08-24 10:39:59
573
原创 QT 正则表达式
学习11、函数 :indexIn() 返回在待检测字符串中,第一个符合表达式规则的位置captureCount()返回匹配个数,但是不止为何,比capturedTexts()返回list的count少1capturedTexts()返回匹配后的列表,扩张一下QStringList的count和size是一样的2、实例QRegExp rx("(\\d+)(\\s*)(cm|inch(es)?)");// 例如,"inch(es)?" 可以匹配 "inch" 或 "inches" ;? 等价于 {0
2021-07-13 15:17:46
560
原创 QT 串口通信,操作程控电源 Agilent 66312A
背景:用QT来写个串口通信小工具,操作程控电源Agilent 66312A ,能够设置电压,获取电流步骤:1、Agilent 66312A RS-232配置按图中步骤,确保程控电压调制RS-232模式,其他为默认参数。2、QT开发小工具3、总结说明a.不要想着从网上能扒拉出一切需要的东西,QT的串口通信,一搜一大把,但是结合到实际程控电源的,真没找到匹配的。b.一定要阅读程控电源的开发文档,收发的命令都在文档中。c.通过程控电源来获取电流,采样间隔可能不同,但拿到的都是平均电流。最后给出
2021-07-08 17:23:21
2067
2
原创 多相机时,实现相机UVC与HID的绑定
项目场景:相机同时支持UVC跟HID协议,多相机时,如何实现同一个相机UVC的DevicePath和HID的DevicePath的绑定??问题描述:相机同时支持UVC跟HID协议,起初用DirectShow获取devicepath,然后打开控制通路更视频通路。现在补充部分控制命令,走HID协议。单相机时,只需要匹配设备的PID 和VID 即可完美的工作;但是需要接多个相机时,比如两个相机A/B,发现A相机的UVC部分没问题, 但是HID确打开的是B相机。原因分析:取HID的DevicePath只是
2021-07-03 14:35:53
812
原创 函数封装小记
记录一下此时的感受:很多朋友,尤其是刚开始写代码的朋友,基本的操作,就是一个函数干全部,代码行数很多。这样既不利于,他人的阅读,也不利于日后自己的复盘。函数的封装作用:1、功能模块化,1个函数干一个事情2、逻辑层次化,总的实现,会分好多个步骤,步骤次序就是逻辑的分层。总而言之,就是代码更可读,逻辑更调理...
2021-02-05 09:37:17
168
原创 QT Connect/Disconnect
提醒点如下:1、关注connect/disconnect的返回值2、在创建connect时,一定注意位置,确保只创建一次,否则变量没释放,又connect了,emit之后,会多次进入槽函数。3、原则上不需要调用disconnect,因为对象被释放时,会自动释放该对象的connect。切忌注意 “connect创建的次数”,虽然很简单的点,一旦忽略,排查起来也是需要费些功夫的。再往下就可以忽略不看了,因为写的很乱,旨在记录自己遇到的问题。上面是connect & di.
2021-01-26 17:59:10
2362
3
原创 C/C++ 数据类型sscanf崩溃
背景:typedef struct{uint16_t a;uint16_t b;}T;char tokenstring[] = “1,2”;T t = { 0,0};sscanf(tokenstring, “%hu,%hu”, &t.a,&t.b); // C4996cout <<(int) t.a << " " << t.b<<endl;用%d 退出的时候崩溃。需要了解具体的类型的同学,可以查看https://blo
2020-08-29 17:44:54
813
原创 DirectShow IGraphBuilder 反复创建释放,导致内存不断增大
#include <windows.h>#include <tchar.h>#include <atlbase.h>#include #include #include <atlbase.h>#include <dshow.h>#include <ks.h>using namespace std;int main(int argc, char *argv[]){int index = 0;;for (;????
2020-08-29 17:36:15
364
原创 the Segmentation fault 18.04
18.04 报错,16.04就没问题。跟踪代码,发现是string 赋值的问题string devicePath;错误代码:devicePath = string("/dev/")+name;修改成如下格式就okstd::string dpath=string("/dev/")+name;devicePath = dpath;
2020-08-29 17:28:06
157
原创 求平均趣点
在写程序的时候,经常用到求平均,比如循环记录某段代码的执行时间方法A:T =( T1+…+Tn )/n方法B:T=T1;T=(T+T2)/2;…T=(T+Tn)/2;说明:A是全部求和,再取平均;B就很有意思,均值,与下一个采样值,再取均值结论,取均值用A肯定没问题,如果用B就需要考量考量了...
2020-08-29 16:32:34
106
原创 an unhandled exception was encountered during a user callback
如上问题,乍看上去感觉一点头绪没有??但实际上问题在明显不过,“callback”,那么ok,debug调试,复现问题,定位到函数A,发现函数A还真是在回调函数中调用的。A(){p->xxx();}指针调用,崩溃了。so,进一步分析,指针出问题,无外乎没new就用,或者是被释放了又调用。继续跟踪,如上原因,确实是在别的地方释放掉了,然后又调用来。...
2020-08-29 16:28:21
704
原创 USB设备,HID设备,UVC设备,及驱动,概念补漏
1、USB设备USB设备是USB电缆末端的一个硬件,它执行用户功能。可以将USB设备分为USB总线接口、USB逻辑设备和功能设备三部分。主机到设备的连接需要经过多个层和多个实体之间的交互作用,USB总线接口层提供了在USB数据线上数据的底层传输。按照USB设备功能的不同,可以把其分为两大类:集线器和功能设备。集线器(Hub)是USB系统的关键部件,它提供了USB设备和主机之间的电气接口。USB连接器的连接点被称为端口,它用于扩展主机的USB端口,USB设备(包括功能设备和其他集线器)可以通过其下行端口.
2020-08-29 16:13:36
4020
原创 Libusb获取设备描述符,字符串描述符
问题:windows 上用Libusb 获取iproduct字符串时,得到的是iinterface的字符串??原因:https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/hidsdi/nf-hidsdi-hidd_getproductstring
2020-08-29 15:44:05
1520
原创 int 转 QByteArray bytes 转float
QByteArray intToByte(int number){QByteArray abyte0;abyte0.resize(4);abyte0[0] = (uchar)(0x000000ff & number);abyte0[1] = (uchar)((0x0000ff00 & number) >> 8);abyte0[2] = (uchar)((0x00ff000
2018-01-22 10:50:00
1132
原创 QT 局域网聊天 C/S
一个局域网聊天小公举主要涉及:1、C/S架构2、TCP协议3、数据库4、登录界面实现登录、注册、找回密码5、主界面实现用户状态的显示6、聊天界面实现文本及文件的传输
2017-12-08 17:35:30
763
6
原创 QT tcp server 多线程
QT 编写一个TCP 协议的Server端,支持多客户端连接,一个连接交由一个线程来处理。需要用到 QTcpServer QTcpSocket QThreadQTcpServer 最主要的一个incomingConnection函数说明由定义就可以知道,当QTcpServer监听到一个可用的连接时,会有一个socket descriptor 。也就是说服务端
2017-12-06 10:59:07
5665
2
原创 innosetup 界面默认选择系统语言
之前的文章中已经做过多语言的安装包今天补充一下,如果获取系统语言,这样在英文系统下,界面显示为英文主要是在做升级包的时候用到,因为升级包不需要在做多语言直接上代码:[Setup]LanguageDetectionMethod=uilanguageShowLanguageDialog=no [Languages]Name: "c
2017-11-09 19:25:20
7202
5
原创 VS + QT +FFTW
最近帮助其他人搞个小东西,用QT实现快速傅里叶正逆变换网上很多需要的C++ fft ifft 有个限定条件,采样点数为2的N次幂,这就导致取任意个数的时候,得出的结果跟matlab的结果不一致。原因是matlab在做变换的时候进行了修正,具体方法不详。这样一来,封装fft ifft 就不太现实了。那么怎么办呢?万能的网络,要
2017-08-22 10:43:59
1254
原创 QT UDP 多网卡 禁用/启用有线网卡
近期做了个关于UDP广播的应用,笔记本上有有线网卡、无线网卡、虚拟网卡等测试发现,有线的插拔会影响广播的发送,插拔以后,UDP始终是走有线网卡发送,禁用有线网卡,UDP就可以从无线网卡发送出来,具体原因没有仔细研究。为了解决这个问题,采用的方法是如果发现有线拔掉了,就禁用有线网卡,在启用有线网卡。相关代码,后续给出
2017-08-15 15:16:42
2585
1
原创 共享内存---结构体使用
共享内存主要是通过映射机制实现的。 Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。当调用 CreateFileMapping 创建命名的内存映射文件对象时,Windows 即在物理内存申请一块指定大小的内存区域,返回文件映射对象的句柄 hMap。为了能够访问这块内存区域必须调用 MapViewOfFile 函数
2017-08-15 10:56:17
4280
原创 Innosetup 将文件安装到system32 、syswow64下
需求:在安装的时候将制定的文件,安装到system32 、syswow64下win7 64 位电脑 Source: ".\a.dll"; DestDir: "{win}\System32"; Flags: ignoreversion DestDir:不管设定的{win}\System32{sys}为什么都是安装到C:\Window
2017-08-07 15:07:05
4274
原创 innosetup卸载删除文件
需求背景:innosetup原则上是安装哪些文件就卸载那些文件。但实际上往往会在应用的使用过程中,会生成一些日志文件。在卸载的时候,不能删掉,会提示手动清理。这样还是挺影响体验的。解决方法:procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);begin if CurUnin
2017-07-06 10:10:23
7885
原创 Innosetup 操作ini文件
需求背景:应用是多语言的,由ini文件控制具体是哪一类语言。安装程序也是多语言的,在选定安装包语言之后需要同步更新ini文件里面的语言值ini文件如下:[General]language=en多语言部分http://blog.youkuaiyun.com/yuyefuxiao521/article/details/73910642已经说过了下面重点说一下,修改ini 文件的va
2017-07-06 09:51:26
5578
原创 innosetup if else 语句中 end 之后; 讲解
起初一直用的是百度出来的innosetup版本,一直没有注意 if else 语句中 end 之后;的问题,换成Unicode版本之后,原本的可用的脚本竟然出错了。总结一下:if xx then begin end;if xx then begin endelsebeginend;单个if语句 end
2017-06-30 10:56:04
1596
1
原创 windeployqt添加QT生成exe的依赖库
第一步:第二步:新建一个文件夹APP用于存放所有的文件,并将exe拷贝进去第三步:切换到APP文件夹下,执行windeployqt xxxx.exe此方法唯一不好的地方是会添加很多实际不需要的库
2017-06-29 15:26:21
426
原创 innosetup多语言选择,可添加多个
其实很简单:[Languages]Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"Name: "english"; MessagesFile: "compiler:Languages\English.isl"Name: "french"; MessagesFile: "compiler:Languages\F
2017-06-29 15:09:51
2294
2
原创 安装前后,关闭执行程序进程,或者杀掉特定进程
针对之前的一篇博文进行更改,那里的代码确实不好用直接上代码:[Files]; 安装前判断进程,dll文件放在inno的安装目录中Source: compiler:IsTask.dll; Flags: dontcopy noencryption[code]//安装前判断是否有进程正在运行,istask.dll文件放到innosetup安装目录fun
2017-06-26 20:05:30
4975
1
原创 QT获取信号发送者
Calib * f_sender = qobject_cast(sender());if (f_sender){// do }说明Calib是自定义的类。如果是取QT自带类替换就好QPushbutton* f_sender = qobject_cast(sender());
2017-06-19 11:40:47
2461
原创 Inno Setup 获取当前语言的名称,安装完成后,依据名称进行文件拷贝
今天项目上遇到需求如下:安装包中英文可选,应用程序可以根据配置文件实现中英文的切换,默认配置文件中是中文,现在想要的是如果安装包选择了英文,配置文件里面默认就改成英文。有点绕,但应该是说明白了。遇到的难点:1、如何获取安装包的语言类型?2、如何修改配置文件?针对问题1 网上没有太多的说明,最后学习群里的一位朋友,一语道破“ActiveLanguag
2017-06-14 15:54:19
3426
原创 Innosetup 创建快速运行栏快捷方式 win7 win 8 win10 均不可用
[Tasks]Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealoneName: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"
2017-06-07 15:13:21
2382
原创 读取文件,判断是否含有固定字符串
项目中,需要通过文件设备,A设备升级文件为a.bin,B设备升级文件为b.bin,不同的设备对应的升级文件是不同的。设备升级时对文件的校验很是重要,单纯的从文件名称校验,是很不安全的,因为可以将任何文件修改成所需文件名称。这里可以认为是“挂羊头卖狗肉”。通常,升级文件中的某些关键字符串,比如a.bin中有的字符串为“helloword”。那么文件检验
2017-06-05 19:10:24
749
原创 MFC 多个RadioButton设为一组 vs2013
需要将多个RadioButton设为一组,组内是互斥的第一步:将radio1、radio2、radio3分为一组方法:设置 radio1 的 属性: group、tabstop、auto均为true设置 radio2 的 属性: group设为false, tabstop、auto均为true设置 radio3 的 属性:group设为fal
2017-06-03 18:09:51
6342
2
原创 VS2013 MFC checkbox 控件默认选中
方法一: 设该CheckBox控件ID为IDC_CHECK1, 在Dialog类的OnInitDialog函数中//TODO处添加代码: ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_CHECKED); 方法二: 为该控件添加BOOL值型控件成员变量m_Check1,在Dialog类的构
2017-06-03 11:17:33
9555
原创 VS2013 MFC 控件中文名称乱码
“资源视图”[Resource View]中找到对话框的ID号,对其右击选择“属性”[Properties],在右边的属性栏中找到“语言”[Language]项,默认是英语(美国),改成中文(中国)
2017-06-03 11:15:43
5017
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人