![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
技术分析论证
文章平均质量分 76
技术分析
luckyone906
这个作者很懒,什么都没留下…
展开
-
计算机系统中程序中断的基本概念 ,中断分类 ,流程详解
排队器的输出是对各个中断信号择优后的一个信号,此时对应一个中断源信号,此时通过中断向量地址形成部件生成中断向量地址,中断向量地址存储的指令可以跳转到中断处理程序的入口地址(中断向量就是中断处理程序的地址)为何要使用中断向量地址的形式,如果中断向量地址形成部件直接生成中断处理程序的地址,那么当中断处理程序的地址改变,那么此时需要修改中断形成部件的电路结构以生成对应的修改后的中断处理程序地址,这样很麻烦。为此,要进行中断排队。关中断使得中断服务程序一气呵成,不会被其他中断打断,直到中断服务程序结束时再开中断。原创 2024-07-12 20:20:32 · 894 阅读 · 0 评论 -
51单片机的中断系统详解
51系列单片机的中断源包括:两个外部中断源、两个定时器/计数器中断源和一个串行通信口中断源,如果它们向 CPU 发出中断请求信号,CPU 就会产生中断,停止执行当前的程序,转而去执行指定的程序(又称中断服务程序或中断子程序),执行完后又返回来执行原来的程序。将生活事例与单片机中断结合分析,主任务是洗衣服,水开报警是一个中断请求,这一时刻相当于断点处,响应中断去关火,然后将开水灌入暖水瓶中,这一动作实际上是处理中断程序,灌完开水后再回去继续洗衣服,相当于处理完中断程序后再返回主程序继续执行主程序。原创 2024-07-09 22:20:28 · 457 阅读 · 0 评论 -
单片机系统中的多任务多线程机制的实现详解
另一方面,单片机自从80年代诞生以来,便以飞快的速度发展起来,但由于其物理条件的限制,单片机控制系统的编程仍然局限于经验的模式,很少应用那些新提出的高级语言的编程思想。这对软件的设计有了很高的要求,这同时也是单片机控制系统用软件模拟多线程方法中的难点之一,为了解决这个问题,可在个线程自带线程进度指示器用来标志线程的运行进度,即用一个变量记载线程的每一步。这里我们把每一个启动通道进行测试的程序叫做一个任务,把各自任务下的每一个单独的、分开处理的程序段叫做一个线程,每个线程依靠自己的标识来识别。原创 2024-07-09 22:07:37 · 907 阅读 · 0 评论 -
c#中窗口句柄有关的问题详解
窗口创建时,窗口并没有创建句柄,只有Application.Run(form)或者form.Show()之后才有句柄,即窗口只有显示或者启动消息循环后才有句柄!如果创建form之后Form form = new Form(),主线程中调用form.Handle,如果句柄尚未创建,引用该属性将强制创建句柄,对系统内的逻辑将产生致命的影响。(7)、IsHandleCreated :指示控件是否有与他关联的句柄,如果已经为控件分配了句柄,则为 true;(2)、CreateHandle :为该控件创建句柄,原创 2024-07-06 22:22:19 · 222 阅读 · 0 评论 -
CPU架构及原理
存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。OK,总结一下,CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。原创 2024-06-06 22:35:15 · 691 阅读 · 0 评论 -
C#中的事件(委托的发布和订阅、事件的发布和订阅、EventHandler类、Windows事件)实例详解,观察者(Observer)模式也称发布-订阅(Publish-Subscribe)模式
object类型的参数sender表示引发事件的对象,由于事件成员只能由类型本身(即事件的发布者)触发,因此在触发时传递给该参数的值通常为this。引发事件的对象称为事件的源或发送者。在事件发布和订阅的过程中,定义事件的类型(即委托类型)是一件重复性的工作,为此,.NET类库中定义了一个EventHandler委托类型,并建议尽量使用该类型作为事件的委托类型。事件是类的一种特殊成员:即使是公有事件,除了其所属类型之外,其他类型只能对其进行订阅或取消,别的任何操作都是不允许的,因此事件具有特殊的封装性。原创 2024-05-16 22:26:11 · 918 阅读 · 0 评论 -
编程中事件驱动架构概述
现在的技术发展快,前后端不断涌现各种框架,我们恨不得把这些框架都用在自己的项目里才行,按实际出发,按需所用,适当的预留技术预研的空间。事件具有自己的属性,比如发生的时间、发生了什么、事件之间的关系、状态以及变化,事件也可以生成新的事件,根据不同的事件生成新的业务事件。事件溯源是一个特别的思路,它并不持久化实体对象,而是只把初始状态和每次变更的事件记录下来,并在内存中根据事件还原实体对象的最新状态,mysql主从备份用到的binary log以及redis的aof持久化机制,都可以认为是“事件溯源”的实现。原创 2024-05-16 21:53:32 · 434 阅读 · 0 评论 -
C++中返回引用和返回值的区别详解(1)
c++原创 2022-11-25 14:00:23 · 595 阅读 · 0 评论 -
QT中多线程QThread使用解疑实例
c++原创 2022-11-20 22:17:45 · 696 阅读 · 0 评论 -
QT中线程的依附性详解
c++原创 2022-11-20 21:16:34 · 649 阅读 · 0 评论 -
C++中构造函数什么时候会被调用(从本质上理解)
c++原创 2022-11-19 22:10:30 · 3233 阅读 · 4 评论 -
QT中的线程与事件循环理解详述
c++原创 2022-11-10 18:22:28 · 2129 阅读 · 2 评论 -
c#中怎么截获按钮消息的几种方法实例验证
C#原创 2022-11-01 21:47:26 · 528 阅读 · 0 评论 -
c#中的消息处理函数和vc中的消息处理函数区别
c#原创 2022-11-01 21:29:18 · 533 阅读 · 0 评论 -
mfc-钩子的使用方法详解
MFC原创 2022-11-01 21:05:07 · 531 阅读 · 0 评论 -
mfc-钩子的使用方法详解
MFC原创 2022-11-01 21:03:27 · 326 阅读 · 0 评论 -
mfc中钩子的使用
MFC原创 2022-11-01 21:02:52 · 224 阅读 · 0 评论 -
MFC中手动添加消息处理函数PreTranslateMessage截获按键等消息
C++原创 2022-11-01 21:02:10 · 1544 阅读 · 0 评论 -
MFC中的模态对话框与非模态对话框的消息循环及消息传递问题(都可以通过SendMessage传递消息)
C++原创 2022-10-29 14:00:21 · 2171 阅读 · 0 评论 -
C++释放指针时提示Invalid address specified to RtlFreeHeap解决办法(堆栈中分配时多分配一些空间再释放)
c++原创 2022-10-15 16:59:21 · 1854 阅读 · 0 评论 -
qt中其他线程的信号向异步线程的槽传指针与释放指针问题
c++原创 2022-10-15 15:27:56 · 789 阅读 · 1 评论 -
qt中信号槽传指针到工作线程,在工作线程释放传递过来的指针
c++原创 2022-11-11 18:38:42 · 329 阅读 · 0 评论 -
c#,c++,qt中多线程访问UI控件线程的问题汇总
c++原创 2022-10-14 21:21:05 · 2998 阅读 · 0 评论 -
MFC中在子线程中创建UI控件及对话框的方法
c++原创 2022-10-14 21:14:25 · 1402 阅读 · 0 评论 -
模态对话框阻塞主线程的话不影响其他线程操作主线程控件(不阻塞)
Task.Factory.StartNew(() => { Thread.Sleep(5000); this.Invoke(new Action(() => { this.button7.Text = "aaaaaaaaaaaaaa"; })); }); MessageBox.S...原创 2022-03-26 09:17:35 · 1048 阅读 · 0 评论 -
C#-invoke与sendmessage,findWindow的阻塞实验
虽然模态对话框阻塞了顶层窗体,但是仍然可以通过findwindow查找顶层窗体句柄,并使用sendmessage向顶层窗体发送消息并执行消息内的逻辑(验证实例如下)public partial class Form6 : Form { #region [DllImport("User32.dll", EntryPoint = "FindWindow")] private extern static IntPtr FindWindow(string ...原创 2022-02-07 20:41:33 · 356 阅读 · 0 评论 -
C#-Hook钩子实例
一。写在最前本文的内容只想以最通俗的语言说明钩子的使用方法,具体到钩子的详细介绍可以参照下面的网址:http://www.microsoft.com/china/community/program/originalarticles/techdoc/hook.mspx二。了解一下钩子从字面上理解,钩子就是想钩住些东西,在程序里可以利用钩子提前处理些Windows消息。例子:有一个Form,Form里有个TextBox,我们想让用户在TextBox里输入的时候,不管敲键盘的哪个键,TextB原创 2022-02-06 21:32:09 · 1649 阅读 · 0 评论 -
c++中类创建对象的两种方式
class A{};1.A a;2.A *a =new A();第一种方式对象数据存在栈中,是局部变量;第二种方式方式申请了动态内存,即对象数据在堆区。原创 2022-02-05 21:19:24 · 1745 阅读 · 0 评论 -
C++类对象的创建与释放过程详解
类的定义与实例化类对象的创建方法类对象的创建过程类对象的释放过程析构函数缺省析构函数类的定义与实例化类对象的创建方法1、在栈上创建类名 对象; // 无参创建方法类名 对象(实参); // 有参创建方法2、在堆上创建类名* 对象指针 = new 类名;类名* 对象指针 = new 类名();3、创建多个对象类名 对象 = {(实参),(实参),(实参)};类名* 对象指针 = new 类名(n){类名(实参),类名(实参),类名(实参)};注意: ...原创 2022-02-05 21:18:02 · 2955 阅读 · 0 评论 -
一个线程资源中有多个模态对话框的问题
一个线程资源中有多个模态对话框下,不是激活的无法调用关闭,只有非激活状态才可以调用关闭,但是可以通过sendmessage发送消息给非激活状态下的模态对话框处理关闭等逻辑。原创 2022-01-19 21:17:40 · 321 阅读 · 0 评论 -
c#实例-子线程查找另一线程模态对话框句柄(invoke测试)
private void button3_Click(object sender, EventArgs e) { Task.Factory.StartNew(() => { Form1form1 = new Form1(); form1.Name = "MyForm"; form1.Text = "子窗体"; form1....原创 2022-01-18 20:57:32 · 383 阅读 · 0 评论 -
MFC和QT等UI框架的特点
UI设计的3大原则:面向对象; MVC; 消息队列驱动;直到现在各个UI系统,包括题主所提到的MFC、WPF、Qt,也包括其它,诸如Android SDK、Cocoa的构建仍旧建立在这3大原则的基础上。要提到MFC,就不得不先提到Windows SDK,后者是随Windows 1.0所提供的操作系统API。Windows 1.0在1985年发售,尽管在此之前已有施乐的Star、苹果的Lisa和Mac OS这样的图形界面操作系统,但Windows 1.0毕竟是第一个大规模发行的图形操作系统,需要转载 2022-01-14 22:22:54 · 1412 阅读 · 0 评论 -
WindowsAPI-Findwindow函数和FindWindowEx用法
1.函数说明:FindWindow,Win32 API函数。FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。2.函数原型:HWND FindWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName );3.参数说明:lpClassName指向一个以null结尾的、用来指定类...原创 2021-12-13 19:58:13 · 18032 阅读 · 0 评论 -
利用FindWindow和SendMessage进程通信
利用FindWindow和SendMessage,特此记下。首先说FindWindow。FindWindow返回与指定字符创相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。函数原型为:C++:HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName );lpClassName就是窗口类名,大多数情况不会用到它。lpWindowName是窗口名,就是窗口标题,任何一个窗口都有标题,当然也会有相同...原创 2021-12-13 19:38:26 · 606 阅读 · 0 评论 -
关于SetCapture() 和 ReleaseCapture()的用法
MSND中对SetCapture()函数的说明为:“该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。”一开始我看这个解释误认为了只要在属于窗口里的一个线程调用了SetCapture(hWnd)把hWnd设为当前的窗口句柄,那么以后的所有窗口消息都会发到我们指定的那个窗口消息队列中。这样的理解是错误的!!!在你调用Set原创 2021-12-10 19:39:00 · 951 阅读 · 0 评论 -
c#中WinForm中拖拽窗体实现移动功能(无边框模态窗体)
在WindowsForm 应用程序中,如果将窗体的FormBorderStyle属性设置为none,这时,用鼠标拖拽窗体时就无法实现移动的功能了,下面就是解决方案.在FormBordeStyle属性设置为none的窗体的后台代码中添加以下代码: [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public s原创 2021-12-10 19:37:12 · 6507 阅读 · 0 评论 -
MFC框架机制详细论述
1.1 Windows消息机制要点1.1.1 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle), 消息ID(Message ID), 和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数)1.1.2 消息类型 1. 系统定义消息(System-Defined Messages) 在SDK中事先定义好的消息,非用户定义的,其范围在[0x000原创 2021-12-09 20:30:35 · 960 阅读 · 0 评论 -
MFC框架结构简述
现在直接给出MFC程序执行顺序,但着重分析其运行机制和功能分析,其流程是“theApp全局对象定义->TestApp构造函数->WinMain函数”。在执行theApp对象的构造函数之前先执行CWinApp基类的构造函数,从而把我们自己创建的类和MFC类相关联起来了。文档应用程序中,都有五个类,部分类名和工程名相关联。在MFC程序有且仅有一个从应用程序类(CWinApp)派生的类,而且仅有一个该派生类的实例化对象每个窗口会有一个称为窗口过程的回调函数(WndProc)..原创 2021-12-09 20:24:42 · 907 阅读 · 0 评论 -
MFC的框架程序分析3
本文将剖析基于MFC的框架程序,探讨MFC框架程序的内部组织结构,MFC是微软为了简化程序员的开发工作而设计的一套c++类集合,利用这些类有效地帮助程序员完成windows应用程序开发。代码结构我们利用VS2008 IDE创建一个名为Test的工程,程序类型选择为单文档,其他默认不变,最终会生成一套代码,这套代码可以直接运行。在生成的单文档应用程序中,都有五个类,部分类名和工程名相关联。图1展示了IDE向导生成的代码结构示意图以及对应的类功能。 ...原创 2021-12-09 20:22:25 · 229 阅读 · 0 评论 -
MFC框架简介2
MFC框架简介一、MFC框架MFC库是开发Windows应用程序的C++接口。MFC提供了面向对象的框架,采用面向对象技术,将大部分的Windows API 封装到C++类中,以类成员函数的形式提供给程序开发人员调用。CWnd类是MFC中一个非常重要的类,它封装了与窗口相关的操作。在前面中,曾经有构建一个Windwos程序的几个部分:http://blog.163.com/zhoumhan_0351/blog/static/3995422720103401415721 MFC中的..原创 2021-12-09 20:19:09 · 392 阅读 · 0 评论