- 博客(68)
- 问答 (1)
- 收藏
- 关注
原创 关键字的作用(static、const、Volatile)
精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;在模块内(函数体外),一个被声明为静态的变量可被模块内所用函数访问,但不能被模块外其他函数访问,是一个本地的全局变量。int const *a const 意味着a是一个指向常整型数的常指针,整型数和指针都不可修改。意味着a是一个指向常整型数的指针,整型数不可修改,但指针可修改;意味着a是一个指向整型数的常指针,整型数可修改,指针不可修改;意味着a是一个常整型数。
2025-02-11 14:15:28
76
原创 VS2022的MFC程序的类向导中,缺少添加类型库中的MFC类
在MFC中点击“TypeLib中的MDC类”或者“ActiveX控件中的MFC类”在可用类型库中找到需要的类添加即可。点击“Ctrl+Shift+A”
2025-01-20 15:30:08
101
原创 在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win6
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下;32位exe和dll在目录c:\windows\syswow64目录下;所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll。
2025-01-17 16:15:00
128
原创 vector加&和不加的区别
当你传递 vector 时,function 会得到该 vector 的副本。您可以在函数中对它执行任何操作,并且您的原始数据不会更改。//m*n的二维vector,所有元素为0。当你传递 vector& then function 时,它会得到引用,这意味着函数中的任何更改都会修改原始数据。获得二维数组的列数:nums[0].size()获得二维数组的行数:nums.size();动态创建m*n的二维vector。
2025-01-09 14:45:36
262
原创 VS移植问题以及OnInitDialog函数问题
在某些情况下,当添加新的对话框时,MFC 应用程序可能不会自动为子对话框类添加 OnInitDialog 函数。本来使用一个名为DLLTest对话框里面调用另外一个名为VK700Dlg的对话框,但两个对话框里面都需要调用同一个头文件,也就是画图的一个头文件,然后我初始化画图的一些属性之后放在如下类的程序中程序崩溃。解决方法:在调试属性->链接器->输入->附加依赖项中添加legacy_stdio_definitions.lib,如果还有错误,可能是只添加了解决方案中其中一个项目,另外一个没加;
2025-01-03 16:35:22
274
原创 VS常见错误之一:LNK2019 : 无法解析的外部符号
一般为使用了外部库函数但包含外部库(.lib)错误:试了放在属性里的VC++的库目录和C/C++里面的包含目录都没用,还是报错!
2024-12-26 14:49:49
763
原创 SDK 作为虚拟示波器配备的一个 Windows 标准 DLL 接口,通过这个接口可以直接控制虚拟示波器,并获得示波器采集的数据
调用Capture函数开始采集数据,length就是你想要采集的长度,以K为单位,比如 length=10,就是10K 10240个点。设备的前级带有程控增益放大器,当采集的信号小于 AD 量程的时候,增益放大器可以把信号放大,更多的利用 AD 的位数,提高采集信号的质量。Dll 会根据设置的采集范围,说明:3 方式只要使用其中的一种就可以了,回掉函数和 Event 都是异步的处理方式,更加的高效;硬件触发的触发点都是采集数据的最中间,比如采集128K 数据,触发点就是第 64K 的点。
2024-12-23 16:20:31
992
原创 AdvPlot的简单使用以及ON_MESSAGE的自定义使用
在类的实现文件中添加消息映射:然后,在类的实现文件中,使用 BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 宏来定义消息映射。在类的头文件中声明消息处理函数:接下来,你需要在类的头文件中声明一个消息处理函数。定义自定义消息:首先,你需要定义一个自定义消息。通常,自定义消息的定义是通过在应用程序的头文件中添加一个常量来实现的,这个常量的值应该大于 WM_USER(0x0400),以避免与系统定义的消息冲突。实现消息处理函数:最后,你需要在类的实现文件中实现消息处理函数。
2024-12-20 16:45:51
269
原创 GetPrivateProfileInt 函数和Modbus使用
此值采用字符串形式;数据读写:Modbus协议允许主设备(如PLC、SCADA系统)读写从设备(如传感器、执行器)的数据。通用性:Modbus协议可在不同的物理层(如串口、以太网)上实现,具有很高的通用性。设置从站地址:主设备通过modbus_set_slave函数设置要通信的从设备地址;处理响应:从设备接收到请求后,根据请求的内容进行相应的处理,并返回相应给主设备;发送请求:主设备向从设备发送请求,请求中包含要读取或写入的数据地址和数量;解析响应:主设备接收到从设备的响应后,解析响应数据,获取所需信息;
2024-12-18 16:54:21
274
原创 ARINC429和CAN
应答场:包含应答位(ACK)和应答界定符(ACK Delimiter),用于确认数据是否正确接收。帧结束(EOF):标志着数据帧的结束,由7个隐性位(逻辑1)表示。帧起始(SOF):标志着数据帧的开始,由一个显性位(逻辑0)表示。控制场:包含数据长度代码(DLC),指示数据场中数据字节的数量。SSM(信号状态矩阵):2位,用于表示数据的有效性和状态。数据场:包含实际传输的数据,长度由控制场中的DLC决定。Label(标签):8位,用于表示数据的类型和来源。Data(数据):19位,包含实际传输的数据。
2024-12-16 16:40:22
606
原创 QT中OpenGL学习笔记1
在 OpenGL 中渲染多边形的方法有很多种,但最有效的方法是仅使用三角形条带基元并渲染图形硬件内存中的顶点。此示例是为 OpenGL ES 2.0 编写的,但它也适用于桌面 OpenGL,因为此示例足够简单,并且在大多数情况下,桌面 OpenGL API 是相同的。Qt主要有两种主要的UI开发方法:QtQuick 和Qt Widgets,它们的存在是为了支持不同类型的用户界面,并建立在针对每种类型进行了优化的单独图形引擎之上,可将OpenGL图形API中编码与这两种用户界面类型相结合创造出渲染后的界面;
2024-11-05 17:26:03
726
原创 CMFCMaskedEdit 类和CIPAddressCtrl 类
检索 IP 地址控件中所有四个字段的地址值。SetAddress:设置 IP 地址控件中所有四个字段的地址值。DWORD dwStyle,//IP 地址控件的样式**, 必须包括 WS_CHILD 样式,因为控件必须是子窗口。const RECT& rect,//对 IP 地址控件的大小和位置的引用。CWnd* pParentWnd,//指向 IP 地址控件的父窗口的指针。创建 IP 地址控件并将其附加到 CIPAddressCtrl 对象。//IP 地址控件的 ID。0 24 到 31。
2024-11-01 16:34:38
743
原创 串口通信以及USART和UART以及IIC和SPI-学习笔记
简述了同步异步通信以及串口通信区别,对RS232、RS422以及RS485作了深入分析,简述了IIC和SPI特点以及区别。
2024-10-30 16:03:05
836
原创 MFC文件管理-学习笔记
其中GENERIC_WRITE表示访问权限为调用放可对对象执行正常的写入操作,GENERIC_READ则表示可对对象执行正常的读取操作;公共运算符为CFile::operator HANDLE --CFile 对象的句柄。公共数据成员有:CFile::hFileNull --确定CFile对象是否具有有效句柄。FILE_SHARE_READ表示请求文件或设备的共享模式,可读取、写入删除等属性,= CFile::hFileNull)CFile::m_hFile --包含操作系统文件句柄。
2024-10-30 14:19:13
728
1
原创 VS中MFC的使用-学习笔记
IsWindow 函数 (winuser.h):确定指定的窗口句柄是否标识现有窗口。使用Visual C++从文件读取XML数据tinyxml2库CMarkup类源代码下载地址使用方法,将头文件和源文件拷贝添加到工程中即可,若编译错误,在源文件中添加#include “stdafx.h”使用方法:CMarkup的基本操作方法实例MSXML使用指南
2024-10-29 11:24:16
272
原创 MultiByteToWideChar函数和树控件的使用
TVIS_STATEIMAGEMASK:用于指定项的状态图像索引的位的掩码。ERROR_INSUFFICIENT_BUFFER:提供的缓冲区大小不够大,或者错误地设置为 NULL。ERROR_NO_UNICODE_TRANSLATION:在字符串中找到无效的 Unicode。TVIS_OVERLAYMASK:用于指定项的覆盖图像索引的位的掩码。TVIS_EXPANDEDONCE:项的子项列表至少已展开一次。ERROR_INVALID_FLAGS:为标志提供的值无效。TVIS_SELECTED:该项已选定。
2024-10-28 14:07:27
342
原创 MFC中常用函数解析使用方法
每个子窗口 (CMDIChildWnd) 都有一个或多个关联的视图。可以通过首先查找活动 MDI 子窗口,然后查找该子窗口的活动视图来获取 MDI 应用程序中的活动视图。// 获取与活动MDI子窗口的活动视图Get the active view attached to the active MDI child window.// 或者可使用 CMDIChildWnd。// 查找活动MDI子窗口。
2024-10-28 10:08:36
547
原创 Windows中API-磁盘管理笔记
使系统的 SID 到名称缓存的内容失效,因此对新用户对象的后续请求 (IEnumDiskQuotaUsers::Next、IDiskQuotaControl::FindUserSid 和 IDiskQuotaControl::FindUserName) 必须从域控制器获取用户名。创建批处理对象,用于同时优化对多个用户的配额设置的更新。检索用户的警告阈值、硬配额限制和使用的配额的值。检索控制卷上用户相关配额事件的日志记录的标志。控制卷上与用户相关的配额事件的日志记录。使存储在配额用户对象中的配额信息无效。
2024-10-25 15:03:59
914
原创 windows-API使用-使用目录方法
函数指定触发更改通知的一组条件。条件包括对文件名、目录名称、属性、文件大小、上次写入时间和安全性的更改。此函数还会返回可以使用 wait 函数等待的句柄。但是,这些函数并不指示满足等待条件的实际更改。检索描述指定目录中的更改的信息,如果指定了该信息类型,这些更改可以包含扩展信息。使用指定模板目录的属性,以事务处理操作的形式创建新目录。若要在通知中检索有关特定更改的信息,请使用。创建更改通知句柄并设置初始更改通知筛选条件。使用指定模板目录的属性创建新目录。检索描述指定目录中的更改的信息。
2024-10-25 13:15:21
572
原创 Windows中API学习-目录管理
D:\路径"前缀扩展,win10及以上版本支持在常见win32文件和目录函数中删除MAX_PATH限制,但要为每个应用程序启用新的长路径行为,必须设置注册表值,应用程序清单必须包含longPathArare元素,若要覆盖现有的重分析点,而没有文件或目录的句柄,请使用 FILE_FLAG_OPEN_REPARSE_POINT调用 CreateFile。在进程的生存期内,将不会重新加载注册表值。如果文件或目录具有关联的重新分析点,则设置 FILE_ATTRIBUTE_REPARSE_POINT 属性。
2024-10-25 11:05:34
588
空空如也
nuttx编译成功之后,想知道stm32L562E-DK可以直接用吗?
2022-02-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人