- 博客(24)
- 收藏
- 关注
原创 dotnet-读写ini配置文件-使用笔记2
延续上一篇笔记:dotnet-读写ini配置文件-使用笔记 之后言:1、读取参数信息的时候,下次尝试使用C#的键值对Dictionary<TKey,TValue>类试试。2、关闭软件时,写信息是一个一个写的,下次尝试使用构造一个string对象,每个KeyValue键值对用字符'0'隔开,整体封装。修改代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text
2022-04-02 11:50:44
293
原创 dotnet-读写ini配置文件-使用笔记
平时我们做项目开发时,经常需要用一些上位机软件发送指令来做测试验证。用到串口通讯时,通讯参数我们希望每次打开时都能复用前次的,比如波特率、数据位、校验位、停止位。或者有一些自定义的常用指令保存在窗口上,不用每次打开软件都要自己去生成,比如电表测试常用指令:68 AA AA AA AA AA AA 68 13 00 DF 16。那么这种时候我们就可以使用ini配置文件。本实例就是上面问题点的解决方式,每次打开软件时,都调用ini配置文件里面的参数去配置串口通讯参数,同时把要发送的命令显示在TextBox控
2022-04-01 22:52:24
387
原创 dotnet-event事件-使用笔记
事件event用于不同模块之间的通讯,本实例中,定义2个class,一个PublisherClass类申明了2个事件,2个方法,调用方法将会触发事件,通过股票代码code或者板块block查询股票信息。另一个SubscriberClass类,定义了一个List<Stock>成员用来保存股票Stock对象,2个方法注册给PublisherClass类对象的事件。using System;using System.Collections.Generic;using System.Linq;
2022-03-30 20:33:29
442
原创 dotnet-Action&Func-使用笔记
本篇笔记延续上一篇delegate部分,因为Action和Func是dotnet内置的代理类。之前使用代理时,需要先delegate申明一个代理,然后才能定义、使用。由于dotnet中Action申明为:public delegate void Action();Func申明为:public delegate TResult Func<out TResult>();所以不需要再从新申明了,直接实例化代理对象即可。using System;using Syste
2022-03-29 22:27:09
395
原创 dotnet-delegate代理-使用
delegate代理相当于C语言中的函数指针,代理和方法需要满足返回值类型、参数类型一致。实例声明了三个代理,分别指向无返回值、无参数方法,无返回值、有一个参数方法,有返回值、有一个参数方法。后面定义了三个相应的函数。然后在Main函数中定义并使用代理。类中的静态方法,只能调用本类的静态成员或方法。因为main函数是静态的,所以ShowStockInfo1()等方法也需要是static的。using System;using System.Collections.Generic;using
2022-03-28 23:11:10
737
原创 dotnet-IEnumerable接口-使用
1、数组Array类,继承了接口IEnumerable,可迭代,所以能调用GetEnumerator()方法。如下两种访问数组元素的方式都能实现。using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace EnumeratorDemo{ class
2022-03-26 16:15:11
417
原创 dotnet-SerialPort使用-问题总结
问题:学习SerialPort类使用,查看了https://github.com/wangminli/SerialPortConnection代码,运行出现异常。单步调试发现,没有可用的串口时,str不为null。解决方式:在使用SerialPort.GetPortNames()时,要注意如果此时没有可用的串口,GetPortNames()会返回一个new String[0],所以不能通过如下str==null来判断是否存在可用的串口。 //检查是否含有串口
2022-03-23 22:37:30
602
原创 WPF编程基础-笔记-数据绑定2
本次笔记涉及:ListBox、TextBox、Button、绑定、ItemSource、ObservableCollection、ICollectionView。实现目标:ListBox显示一组数据,数据是User对象的Name属性;同时把ListBox选中项的Name属性显示在nameTextBox,把Age属性显示在ageTextBox;最后4个按钮,能选择第一个、前一个、后一个、最后一个ListBox中的项目。
2022-03-16 23:20:31
413
原创 WPF编程基础-笔记-数据绑定
MVVM的基础是前后台分离,那么就需要把后台的数据与前台的控件绑定。前台XAML代码:<Window x:Class="KarliCards.Gui.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://
2022-03-09 21:37:40
327
1
转载 WPF编程基础-学习笔记-20220303
1、实例中,Viewport,表示视窗。ViewportUnits默认RelativeToBoundingBox,也就是相对坐标。前两位表示开始坐标,后两位表示结束坐标。归一化为1。Viewport="0, 0, 0.5, 0.2",表示,开始坐标(0,0),结束坐标(0.5,0.2),0.5表示占据对象X轴长度一半,0.2表示占据对象Y轴长度的五分之一。<Window x:Class="KarliCards.Gui.Window1" xmlns="http://schema
2022-03-03 21:13:23
386
原创 QT学习之QByteArray转QString
代码如下:void MainWindow::on_startBtn_clicked(){// STC_DLT645FRAME_T stDLT645Frame; quint8 i=0; quint8 arrDLT645Frame[12] = {0x68, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x68, 0x13, 0x00, 0xDF, 0x16}; QByteArray baDLT645Frame; for (; i<
2020-10-15 11:51:07
7552
原创 AES加密算法代码学习之mixColumns函数分析
AES加密算法代码学习之mixColumns函数分析工程参考:https://github.com/bricke/Qt-AES函数定义如下:// MixColumns function mixes the columns of the state matrix//optimized!!void QAESEncryption::mixColumns(){ QByteArray::iterator it = m_state->begin(); quint8 tmp, tm.
2020-10-14 14:00:11
2860
原创 串行SRAM
串行SRAM:1、https://www.vilsion.com/VTI7064LSM.shtml VTI7064LSM2、http://www.ipusltd.com/index_cn.html IPS3204J‐SQ
2020-04-29 16:07:52
636
原创 layui新手学习之HelloWorld
下载layui压缩包,解压后,目录如下:在src目录下新建hello.html,如下:之后复制代码到hello.html中,如下:注意黄色框中的路径格式。./表示hello.html所在当前目录,..表示本目录上一层目录。...
2019-10-20 15:54:32
258
转载 MFC对话框-DoDataExchange()函数使用
1)CWnd::DoDataExchange virtualvoidDoDataExchange(CDataExchange*pDX);ParameterspDXA pointer to a CDataExchange object.RemarksCalled by the framework to exchange and validate dia
2016-03-12 21:46:03
1350
转载 MFC对话框-UpdateData()函数使用
1)CWnd::UpdateDataBOOL UpdateData( BOOL bSaveAndValidate = TRUE );Return ValueNonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of n
2016-03-12 21:31:09
718
原创 VC++上位机编程学习总结2-属性页对话框
学习资料:Visual c++ 2010开发权威指南4.2.3.学习对象:OnInitDialog()函数。在给性别组合框添加OnInitDialog()函数时,应按选中控件->右键->类向导->虚函数->选中OnInitDialog->添加函数即可。VS2010中此函数为虚函数,可以重载,不是VC6中的消息WM_INITDIALOG,也就没有其的消息映射函数。
2016-01-06 22:57:22
488
转载 vs2010 如何去掉红色波浪线
1、在VAssistX菜单栏->Visual Assist X Options->展开Advanced->Underlines->把underlines spelling errors in comments and strings using的勾去掉。2、工具->选项->展开“文本编辑器”->再展开“C/C++”->单击“高级”->然后禁用波形曲线,选择true。
2015-12-29 00:07:17
3831
原创 VC++上位机编程学习总结1-逃跑按钮程序
参考:VC++深入详解 孙鑫编。写好后,运行,鼠标移动到按钮上,没一点变化。原因:没有保存TestDlg.cpp文件,导致DoDataExchange()函数中没有DDX_Control(pDX, IDC_BUTTON1, m_btn1);DDX_Control(pDX, IDC_BUTTON2, m_btn2);这两个函数,也就不能把Button1、Button2与m_b
2015-12-22 22:07:13
513
转载 C++对象构造函数与析构函数的调用时间问题
今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢。写段代码总结下[cpp] view plaincopy #include using namespace std; class Box { private: double le
2014-07-29 14:52:34
375
原创 在QT环境下,实例分析构造函数与析构函数的执行时机
#include //#include class Box{private: double length;public: Box(double lv=1.0):length(lv)//构造函数都没有返回值 { qDebug() "constructor called" endl; } ~Box()//重
2014-07-29 14:03:33
1595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人