自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 出现fatal error C1083: 无法打开包括文件: “opencv2/opencv.hpp”: No such file or directory问题时,如何解决?

•添加OpenCV的lib目录,例如C:\opencv\build\x64\vc14\lib或C:\opencv\build\lib。当你在使用C++编译包含OpenCV库的代码时遇到fatal error C1083: 无法打开包括文件: “opencv2/opencv.hpp”的错误,这通常意味着你的项目没有正确配置OpenCV库的路径。opencv.hpp是一个头文件,它包含了OpenCV所有模块的声明,因此是使用OpenCV库的关键。确保你安装的OpenCV版本与你的项目和编译器兼容。

2024-07-16 19:43:54 705

原创 C++使用多线程实现删除打印机1到50和50到100同步进行

在C++中实现同时删除两个范围内的打印机(例如,打印机1到50和50到100),可以利用多线程来并行处理这两个任务。为了演示,我们假设有一个DeletePrintersInRange函数,该函数接受一个起始编号和结束编号,然后删除该范围内的打印机。•上述示例代码中的DeletePrintersInRange函数是一个占位符,实际应用中你需要替换为具体的删除打印机的实现。•在实际应用中,确保你的系统中有足够多的打印机可以被删除,否则上述代码可能会尝试删除不存在的打印机,导致错误。

2024-07-05 20:24:13 325

原创 C++实现计算程序运行的时间

在这个示例中,std::chrono::high_resolution_clock::now()用于获取当前时间点,std::chrono::duration_cast用于将时间差转换为指定单位(这里是毫秒)。std::cout << "程序运行时间: " << duration.count() << " 毫秒" << std::endl;std::cout << "程序运行时间: " << duration.count() << " 秒" << std::endl;// 获取程序执行完毕后的时间点。

2024-07-05 20:08:58 327

原创 python实现从某个网址爬取图片到本地电脑

with open('C:\\Users\\Desktop\\photo\\%s.jpg'%num,'wb') as fb: #以只读方式打开图片并命名。url='http://p.weather.com.cn/2019/10/3248439.shtml' #传入url路径。response=urllib.request.urlopen(request)#打开url网址。request=urllib.request.Request(url)#发送url请求。fb.write(image) #写入内容。

2024-07-04 20:55:58 502

原创 一个简单字符设备驱动实例

字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作。另外每个文件都有两个设备号,第一个是主设备号,标识驱动程序,第二个是从设备号,标识使用同一个设备驱动程序的不同的硬件设备,比如有两个软盘,就可以用从设备号来区分他们。如果你的驱动程序陷入死循环,不幸的是你只有重新启动机器了,然后就是漫长的fsck。

2024-07-04 20:52:15 450

原创 python实现粽子的销售数据分析

2024-07-04 20:50:50 71

原创 python实现贪吃蛇

源码如下:import sysUP = 'up'runGame()= RIGHT:= LEFT:= DOWN:= UP:else:drawGrid()

2024-07-02 21:12:12 829

原创 嵌入式基础面试题整理

I2C和SPI都是同步协议且都有时钟线,在同一条总线上可以挂多个从设 备,但是I2C的从设备是根据地址来区分的,SPI的从设备是通过CS(片选) 线来区分的,所以SPI总线上每多一个从设备就要多一条线作为片选线,而 I2C只要地址不冲突就可以挂载多个设备,所以在一对多通信时I2C更具优 势,但是I2C总线的速度要低于SPI。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。*套接字socket通信:套接口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

2024-07-02 21:08:29 563

原创 实现openstack的部署和安装

Fuel 是一个为 openstack 端到端”一键部署“设计的工具,其功能含盖自动的 PXE 方 式的操作系统安装,DHCP 服务,Orchestration(业务编排)服务 和 puppet(自动化运维 工具)配置管理相关服务等,此外还有 openstack 关键业务健康检查和 log 实时查看等非 常好用的服务。fuel_master 节点作为 pxe 服务 器和管理用,fuel_controller 即 openstack 控制节点,fuel_compute 就是计算节点,真正 可使用的资源。

2024-07-01 18:54:13 1217

原创 linux rpm包的安装与管理

Vim 是一个 linux 程序编辑器,通过查看没有 vim 的图形界面,这就需要重新安装一下,在安装图形界面的 vim 之前,先查看之前的光盘是否已经挂载以及光盘的挂载点,可以通过 df 进行查看,查看的光盘挂载的位置是在/dev/sr0 设备。将 vim 的图形化的编辑器界面都安装成功之后,再通过 Linux 的菜单栏的“应用程序” →“附件”就可以看到刚刚已经安装好的vim的图形化界面的程序已经存在于程序当中, 在对编辑命令不熟悉的情况下可以通过程序的图形化进行操作。图 6 vim 图像化的安装。

2024-07-01 18:51:09 997

原创 Linux Vmware虚拟机安装前准备

Vmware是真正“同时”运行,多个操作系统在主系统的平台上,就像标准的Windows应用程序那样切换。而且每个操作系统都可以进行虚拟的分区、配置而不影响真实硬盘的数据,可以通过网卡将几台虚拟机用网卡连接为一个局域网。(7)易迁移[可将ISO镜像文件复制到另外一个虚拟机上,就可以运行](3)跨0S,不通过的操作系统之间可以进行文件分享[复制,粘贴](5)本机可以虚拟OS进行通信,虚拟OS可以和虚拟0S进行通信。(6)可动态分配,修改OS的操作环境,如内存,硬盘等。第三步:安装模式,选择自定义,选择下一步。

2024-07-01 18:49:27 212

原创 linux yum的安装与管理

确保系统中已经安装了 yum 相关软件包,基于grep行的过滤 vim相关的软件包查看, 如图所示 8。还可以安装现在没有的组,例如安装组“群集存储”(需加引号),如图 15 所示。具体有关于 yum 的命令,可通过 Help 命令查找,如图 17 所示。可利用 Ls 命令查看关于目录中的所有目录,如图 10 所示。4.查看 Yum 源的配置文件所在的路径,如图 4 所示。查看 Yum 源的指定路径,如图 3 所示。查看 vim 相关的软件包的功能,如图 9 所示。查看自己所写的配置文件,如图 6 所示。

2024-06-29 20:55:48 444

原创 linux网络配置与管理

下面来使用第三种方法配置 IP 信息,图形化界面配置。首先查看物理机的IP信息。下面用第二种方法来配置 IP 信息,命令行配置 IP 信息。点击“enter”后,就进入了 setup 配置界面了,选择“网络配置”。图 11 查看物理机的 IP 信息。图 10 查看网卡信息。图 12 测试网络的连通性。图 23 查看物理机的 IP 信息。进入 set 设置,在终端输入“setup”,点击“enter”键。图 25 查看 IP 信息。图 24 配置 IP 信息。配置好后,修改配置文件。图 7 查看配置文件。

2024-06-29 20:52:44 891

原创 vmware虚拟机安装

七.软件选择中最小安装选择带GUI的服务器。十二.全部的分区,分区完成之后,点击完成。十一.安装位置的分区内存的大小设置。实验内容:vmware虚拟机安装。九.安装位置的分区内存的大小设置。十.安装位置的分区内存的大小设置。五.选择安装过程中想使用的语言。八.对系统进行分区,手动分区。十五.点击root密码。十六.设置root密码。

2024-06-29 20:49:49 308

原创 C++实现打开一个窗口,窗口不关闭,继续运行主程序的方法

在C++中直接创建图形用户界面(GUI)窗口通常需要借助于特定的GUI库,因为C++标准库本身并不包含GUI编程的功能。在这两个例子中,窗口一旦创建并显示,程序并不会立即结束,而是进入一个事件循环等待用户操作(如关闭窗口),在此期间你可以继续执行主程序的其他逻辑。请根据你的具体需求选择合适的库进行开发。使用SFML库SFML是一个面向多媒体应用的C++库,虽然它主要关注游戏开发,但也支持创建简单的窗口。// 你的主程序逻辑可以放在show()之后,exec()之前,但要注意UI更新和线程管理。

2024-06-29 20:32:29 521

原创 C#编程期末考试复习题

OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的驱设备动程序,而是把精力和时间集中在增加和完善软件的功能上,使自己的软件更易被用户接受和使用。来定义双方沟通的协议,合约必须要以接口的方式来体现,而实际的服务代码必须要由这些合约接口派生并实现。Socket一般指套接字,所谓套接字,是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。是简单的、中立厂商的用于管理和控制自动化设备的MODBUS。不指定特定数据库管理系统的情况下,常用的连接数据的方式有。

2024-06-22 17:05:11 791

原创 使用python编写一个可选的运行程序框

创建一个Listbox背景颜色为粉色,显示字体颜色为红色。b1=tkinter.Button(text="取消")b2=tkinter.Button(text="确定")root.title("18智能")#循环遍历,将字母依次放入框中。#引入tkinter。

2024-06-22 17:01:41 108

原创 使用Python编写程序,利用turtle模块绘制一个如图所示的爱心。

绘制半径为100,角度为180的半圆。#绘制半径为100,角度为180的半圆。#设置画笔颜色,填充颜色。#引入turtle库。#向前移动200像素。#向前移动200像素。

2024-06-22 16:59:30 100

原创 python如何学习

• 标准库与第三方库:Python拥有丰富的标准库和第三方库,如NumPy、Pandas(数据分析)、Matplotlib(数据可视化)、requests(网络请求)等,了解并学会使用这些库能大大增强你的开发能力。学习Python是一个既有趣又实用的过程,它是一种广泛应用于网站和应用程序开发、数据分析、人工智能、自动化脚本等领域的高级编程语言。• 开始之前:了解编程的基本概念,如变量、数据类型(字符串、整数、浮点数、列表、字典等)、控制结构(条件语句、循环)和函数。实践是学习编程的最佳方式。

2024-06-22 16:53:17 405

原创 C++使用API Hooking(API钩子)实现抓取打印数据

API Hooking(API钩子)是一种技术,允许你在程序调用特定API函数之前或之后插入自定义的代码,从而改变或监视其行为。在打印数据抓取的上下文中,你可以使用API钩子来捕捉应用程序发送给打印系统的原始数据。你的钩子函数应该复制或记录传入的数据,然后调用原始API以保证打印过程不受影响。以上是使用API Hooking技术抓取打印数据的一个基本框架,实际实现时可能需要根据具体的应用程序和操作系统版本做适当调整。在程序初始化时,使用Detours的API安装钩子,将你的钩子函数与目标API连接起来。

2024-06-22 16:45:39 674

原创 如何获取未转换为prn文件之前的打印数据?

通过编程手段,你可以使用API钩子技术拦截应用程序调用打印API(如Windows的GDI或WinAPI的打印函数)的过程,从而在数据被进一步处理前捕获它们。如果打印作业是通过网络发送到打印服务器或网络打印机的,可以使用网络嗅探工具(如Wireshark)来捕获打印作业的网络数据包。如果你对开发有一定了解,可以创建一个自定义的打印处理程序(如Windows的打印处理器),它位于打印后台处理程序和打印驱动之间,可以捕获原始打印数据流,并进行自定义处理。这通常涉及到直接在软件层面上或操作系统级别进行数据捕获。

2024-06-22 16:40:34 282

原创 C++程序中调用py

在C++程序中调用Python脚本或函数,可以通过多种方式实现,其中最常见且官方推荐的方法是使用Python的C API或者CPython的更高层次封装——Python.h头文件。使用上述任一方法之前,请确保你的开发环境已经配置好了Python,并且理解所选方法的文档和最佳实践,特别是跨平台编译和部署时的注意事项。•优点:现代、简洁的API设计,易于使用,支持C++11/14/17/20,无需编写大量的胶水代码。•优点:提供更高级、更面向对象的接口,简化了C++与Python的交互。// 处理结果...

2024-06-17 22:46:04 596

原创 python对.xlsx文件进行操作

Python 对处理 .xlsx 文件有很好的支持,主要通过几个流行的第三方库实现,其中最常用的是 openpyxl 和 pandas。下面简要介绍这两个库的使用方法。1. 使用 openpyxlopenpyxl 是一个用来读写Excel 2010 xlsx/xlsm/xltx/xltm 文件的库,支持创建、修改和读取Excel文件中的数据。安装:pip install openpyxl基本使用示例:读取Excel文件:from openpyxl import loa

2024-06-17 22:42:16 648

原创 C语言实现对二维数组中的数值进行操作

printf("\n操作后数组:\n");printf("原始数组:\n");

2024-06-12 19:06:54 368

原创 *arr和*(arr+1)的区别

• *(arr+1): 这个表达式首先计算arr+1,它表示arr指向的地址之后的下一个元素的地址(因为arr指向数组的首元素,所以arr+1指向第二个元素)。然后*(arr+1)对这个新的地址进行解引用,即访问数组的第二个元素。如果arr是一个指向数组起始位置的指针,那么*arr就是访问数组的第一个元素。例如,如果arr是一个整数数组的指针,*arr就相当于arr[0]。总结来说,*arr访问数组的第一个元素,而*(arr+1)访问数组的第二个元素。

2024-06-11 20:16:54 185

原创 gcc++编译器介绍

它支持C++语言的最新特性,并且能够编译遵循C++标准的源代码文件,生成可执行文件、目标文件或归档库文件。g++在背后实际上调用了GCC的编译器后端,提供了对C++语言特性的支持,包括模板、类、命名空间、异常处理、RTTI(运行时类型信息)等。实际上,gcc++这个表述并不是标准的GCC(GNU Compiler Collection,GNU编译器套件)命令。虽然提问中提到的gcc++并非标准术语,但基于理解,这里介绍了正确的C++编译器前端工具g++及其基本使用方法和特点。

2024-06-11 20:15:53 282

原创 Xcode介绍

Xcode是由Apple Inc.开发的一款集成开发环境(IDE),专门设计用于在Mac OS X操作系统上创建、测试和优化各种苹果平台的应用程序,涵盖iOS(用于iPhone和iPad)、macOS、watchOS(用于Apple Watch)以及tvOS(用于Apple TV)。4. 模拟器和设备调试:Xcode内置了iOS、watchOS、tvOS和macOS的模拟器,便于开发者在不同的苹果设备和操作系统版本上测试应用,同时支持直接连接真实设备进行调试。

2024-06-11 20:14:24 226

原创 xcodebuild 介绍

xcodebuild 是一个命令行工具,它是Apple的Xcode开发环境的一部分,用于在命令行界面下构建(compile)、运行(run)、测试(test)和归档(archive)Xcode项目或工作空间。其中,[options] 包括各种参数,用于定制构建行为,比如 -scheme 指定构建方案,-target 指定构建目标,-configuration 指定构建配置(如Debug或Release)等。• 查看构建日志:提供详细的构建过程日志,帮助诊断构建失败的原因。

2024-06-11 20:13:44 193

原创 当遇到fatal error C1083: 无法打开包括文件:“winddi.h”: No such file or directory问题时,如何解决?

在Visual Studio中,右键点击您的项目,选择“属性”(Properties),然后导航到“配置属性”(Configuration Properties) > “C/C++” > “常规”(General) > “附加包含目录”(Additional Include Directories)。在这里,您需要添加指向winddi.h实际位置的路径。如果您不确定或者尚未安装,可以通过Visual Studio的“工具”>“获取工具和功能”来安装缺失的组件,特别关注“Windows SDK”的部分。

2024-06-11 20:10:35 396

原创 简单的shell命令介绍

•例如:cp oldFile.txt newFile.txt 将"oldFile.txt"复制为"newFile.txt"。•例如:mv oldName.txt newName.txt 将文件重命名为"newName.txt"。•例如:rm file.txt 会删除名为"file.txt"的文件。•例如:grep "pattern" myfile.txt 在myfile.txt中搜索包含"pattern"的行。•例如:find . -name "*.txt" 在当前目录及其子目录下查找所有的.txt文件。

2024-06-11 20:07:53 418

原创 dpkg安装包打包器介绍

实际上,创建.deb包通常涉及使用dpkg-deb命令来打包目录结构为.deb格式,或者使用更高级的工具如debhelper、dpkg-buildpackage(特别是针对从源代码构建的软件包)来自动化构建过程,包括处理依赖、编译源码、打包等一系列步骤。总的来说,dpkg是Debian系Linux系统中不可或缺的基础组件,它为软件包的本地管理提供了强大的命令行工具,尽管在处理依赖关系和网络下载方面有所局限,但结合其他工具可以实现全面的软件包管理功能。apt-get会在安装前自动下载依赖的包并解决版本冲突。

2024-06-11 20:05:09 258

原创 C++实现255减去二维数组中的每一个值

printf("\n操作后数组(每个值都用255减去):\n");printf("原始数组:\n");

2024-06-09 17:18:55 611

原创 CRC校验C语言实现

2、计算整个 k+r 位的 CRC 码,若为 0,则接收正确。CRC 简介 CRC 检验的基本思想是利用线性编码理论,在发送端根据要传送的 k 位二进制码序列,以一定的规则 产生一个检验码 r 位(就是 CRC 码),附在信息后面,构成一个新的二进制码序列数共(k+r)位,最后发送出去。

2024-05-31 22:35:06 436

原创 C++实现修改文件中的内容

在C++中修改文件的内容通常涉及到先读取文件内容到内存中,修改内存中的数据,然后再将修改后的内容写回文件。std::cerr << "无法打开文件以写入:" << filePath << std::endl;std::cerr << "无法打开文件:" << filePath << std::endl;std::cout << "未找到指定的文本" << std::endl;std::cout << "文件内容已修改并保存。= std::string::npos) { // 如果找到了。

2024-05-30 19:37:52 572

原创 C++编写一个程序,提示用户输入一个整数,然后输出由空格分隔的数字的以及数字的和

然后,通过循环处理该整数的每一位数字:首先使用%10操作符获取当前最低位数字,并累加到总和sum中;注意,为了处理负数时也能正确输出,程序首先将负数转为正数处理,这样不影响每一位数字的提取和求和,但实际输出时仍保持原数值的正负特性。下面是一个简单的C++程序示例,该程序会提示用户输入一个整数,然后输出该整数的每一位数字,数字之间用空格分隔开,并且最后输出这些数字的和。cout << "\n这些数字的和为: " << sum << endl;// 处理负数的情况,将其转为正数处理。

2024-05-29 19:03:46 299

原创 C++编写一个程序,以每公里 0.65 元的价格为员工计算里程报销程序提示用户输入里程表开始的度数和介绍读数,然后计算并显示报销金额

程序会提示用户输入两次读数,然后计算两者之间的差值作为行驶距离,并根据每公里的费用率计算报销金额,最后输出报销总额。std::cout << "您的报销金额为: " << reimbursementAmount << "元" << std::endl;std::cout << "结束读数不能小于开始读数,请重新输入合理的里程数据。std::cout << "请输入里程表开始的读数(公里): ";std::cout << "请输入里程表结束的读数(公里): ";// 提示用户输入里程表开始读数。

2024-05-29 18:51:22 214

原创 在C++中获取电脑安装的打印机列表

在C++中获取电脑安装的打印机列表,通常需要使用操作系统提供的API。对于Windows系统,可以使用Windows API中的EnumPrinters或EnumPrintersEx函数。这段代码首先通过EnumPrintersEx函数获取打印机列表的大小需求,然后分配相应大小的内存,再次调用EnumPrintersEx填充打印机信息。最后遍历这些信息并打印出打印机的名称。// 可以添加更多属性,如Location、Comment等。// 获取所需缓冲区大小。// 打印打印机信息。

2024-05-28 18:56:25 460

原创 C_语言inline函数小结

内联函数是真正的函数,而且在调用的地方,由编译器负责把内联函数的函数体代码块替换到内联函数被调用的地方,这一点与宏替换很相似;C++中,在类定义体内部定义了函数体的成员函数,被编译器默认为内联函数,而不管这个函数头前面是否有关键字inline,比如:setID()、getID()、setAge()、getAge();1、由于内联函数与宏一样也是实现为代码替换,所以定义为内联函数的函数体不宜过大,如果函数体过大,则某些普通的编译器就会放弃内联方式,而改用调用普通函数的方式,这样就失去了内联函数的意义了;

2024-05-28 18:41:31 340

原创 明晰Linux与图形的关系

X应用程序只负责告诉X服务器在屏幕的什么地方用什么 颜色画一个多大的圆,而具体的"画"的动作,比如这个圆怎样生成,用什么显卡的驱动程式去指挥显卡完成等等工作是由X服务器来完成的。在桌面系统中,QT程序通常是符合X协议的应用程序,它需要X服务器的支持。KDE 和GNOME是LINUX里最常用的图像界面操作环境,他们不但仅是个窗口管理器那么简单, KDE是K Desktop Environment 的缩写,他不但是个窗口管理器,更有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等。

2024-05-28 18:40:06 807

原创 详细理解C指针-指针函数与函数指针和回调函数

ptr 是指向函数的指针变量,所以可把函数max()赋给ptr作为ptr的值,即把max()的入口地址赋给ptr,以后就可以用ptr来调用该函数,实际上 ptr和max都指向同一个入口地址,不同就是ptr是一个指针变量,不像函数名称那样是死的,它可以指向任何函数,就看你像怎么做了。p是指向某函数的指针,该函数无输入参数,返回值的类型为void。“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

2024-05-28 18:38:29 520

嵌入式基础笔试题整理笔记

此文件是关于嵌入式基础知识的一些整理及总结

2024-05-27

使用C++获取twain名小工具及源码

该代码可以获取电脑中安装的所有twain名称,使用的编程代码为C++

2024-05-27

QT实现基于人脸识别登录的教务系统的设计

(1)系统的环境搭建,主要包括QT Creator开发软件、PHP服务器N11数据库、百度AI网站的搭建。 (2)教务系统的页面构建,界面包括学生、教师、管理员三类用户,并且三类用户都有其独特的可操作性界面。 (3)百度AI人脸库的构建,此过程需注册百度账号,并进行人脸识别应用创建,而后创建人脸库即可。 (4)数据库的构建,本系统使用MYSQL数据库,数据库主要有账户密码表、学生表、教师表等。 (5)教务系统与百度AI接口的连接,此连接过程包括教务系统发送图片到百度AI人脸库中进行存储,以及百度AI对教务系统发来的图片进行识别并返回识别数据。

2024-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除