自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 工具DebugView、PCHunter、Procexp、Procmon

1、 DebugView  可以动态查看日志,可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。  2、 PCHunter 系统信息查看工具  使用场景:  (1)查看一些隐藏进程,能结束一些procexp无法结束的进程,能暂停和恢复进程执行。 (2)查看进程的窗口、模块、内存。 (...

2019-01-15 11:51:00 504

转载 使用Windbg和VMware来搭建调试内核的环境

现象:虚拟机内还原系统镜像后蓝屏。通过调试查看蓝屏码为7B蓝屏,是由于磁盘类型选用SCSI导致了蓝屏无法正常开机,应改用IDE类型。原理:VMware在虚拟机OS虚拟一个COM口,并在HostOS创建了一个管道,这个管道的一端连接虚拟机OS的COM口,另一端则是Windbg,所以HostOS(Windbg)和虚拟机OS的所有数据交换都是通过这个管道来流通转发的。过程:1、安装...

2019-01-15 11:02:00 241

转载 C++智能指针

一、为什么使用智能指针?智能指针的原理?C/C++中的堆内存分配和释放的方式主要是: malloc/free 以及 new/delete 等。使用new 和delete 管理内存存在三个常见问题:1.忘记delete(释放) 内存,或者异常导致程序过早退出,没有执行 delete。忘记释放动态内存会导致内存泄露问题,长时间这样会导致系统内存越来越小。(内存泄露问题往往很难查...

2018-12-18 17:38:00 99

转载 获取系统所有软件的卸载信息

说明:每安装一个软件,那么该软件的安装程序会向注册表当中“ SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall ”的注册表项下面创建一个注册表子项,键值存储卸载数据信息。实现:1、定义存储程序卸载信息的结构体SOFTWARE 1 struct SOFTWARE 2 { 3 CString Di...

2018-12-17 14:33:00 415

转载 读取注册表获取计算机上已安装程序的信息

1、结构体SOFTWARE用于记录每个安装程序的具体信息 1 struct SOFTWARE 2 { 3 CString DisplayName; 4 CString Publisher; 5 CString InstallDate; 6 CString InstallLocation; 7 CString Unin...

2018-12-14 16:45:00 945

转载 关机重启后运行父进程

目的:进程在进行某些操作后需要系统重启,并且在系统重启后调用原进程的父进程进行某些操作。 1 BOOL ParentProcessRunonce() 2 { 3 DWORD pid = GetCurrentProcessId(); 4 CString strParentPath; 5 if(!GetParentProcessFileName...

2018-12-14 12:21:00 319

转载 系统关机重启,提升进程权限

  在枚举/结束系统进程或操作系统服务时,会出现权限不足而失败的情况,因此需要提升进程的权限。1 BOOL SystemRestart()2 {3 EnableXXXPrivilege(SE_SHUTDOWN_NAME);4 return ExitWindowsEx(EWX_REBOOT, 0);5 }  windows的每个用户登录系统后...

2018-12-14 11:54:00 209

转载 修改用户密码

要求:实现一个修改用户密码的测试程序实现:新建Win32控制台项目头文件stdafx.h 1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include "targetver.h" 4 5 #include <stdio.h> 6 #include <tchar.h> 7 #include ...

2018-12-11 19:02:00 151

转载 获取电脑实时CPU使用率

要求:实现一个计算电脑实时CPU占有率的测试程序,将多种方法获取结果显示在对话框上,动态显示。实现:1、新建基于对话框的MFC应用程序,Dialog上添加控件,为控件添加CSting类型变量m_RateResult1、m_RateResult2、m_RateResult3, 2、创建线程类(Thread.h和Thread.cpp),在 ####Dlg.cpp...

2018-12-10 19:18:00 851

转载 笔记摘录:Unicode、内核对象

第一章 对程序错误的处理1、若要确定是什么错误,请调用GetLastError函数:该函数从线程局部存储区获取32位错误代码。2、Visual studio还配有一个小的实用程序称为Error Lookup,可以使用Error Lookup将错误代码的号码转换成相应文本描述。3、Windows提供了一个函数FormatMessage,可以将错误代码转换成它的文本描述。Er...

2018-12-03 16:08:00 83

转载 1、基本原理

转载于:https://www.cnblogs.com/yapp/p/9112167.html

2018-05-30 17:26:00 104

转载 6、多核原理

转载于:https://www.cnblogs.com/yapp/p/9111461.html

2018-05-30 16:06:00 139

转载 7、操作系统设计原理

转载于:https://www.cnblogs.com/yapp/p/9111463.html

2018-05-30 16:06:00 265

转载 5、I/O原理

转载于:https://www.cnblogs.com/yapp/p/9109879.html

2018-05-30 11:17:00 110

转载 4、文件原理

转载于:https://www.cnblogs.com/yapp/p/9109871.html

2018-05-30 11:16:00 96

转载 3、内存原理

转载于:https://www.cnblogs.com/yapp/p/9109867.html

2018-05-30 11:15:00 78

转载 用两个栈实现队列

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型思路:画图分析class Solution{public: void push(int node) { stack1.push(node); } int pop() { int temp; if...

2018-05-21 19:20:00 149

转载 合并两个排序的链表

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则思路:比较得到两个链表中值较小的头节点并把它链接到已经合并的链表之后,两个链表剩余的节点依然是排序的,因此合并的步骤和之前的步骤一样,这是典型的递归过程。ListNode* Merge(ListNode* pHead1, ListNode* pHead2){ if(p...

2018-05-21 18:38:00 111

转载 反转链表

题目:输入一个链表,反转链表后,输出链表的所有元素思路:使用三个指针遍历一遍链表注意:代码的鲁棒性!ListNode* ReverseList(ListNode* pHead) { if(pHead == NULL)return NULL; if(pHead->next == NULL)return pHead; ListNode* p...

2018-05-21 18:09:00 76

转载 链表倒数第k个节点

题目:输入一个链表,输出该链表中倒数第k个结点思路:1.遍历两遍链表,第一遍找到链表长度n,第二遍从0到n-k+1找到倒数第k个节点,不是最优解。   2.使用两个指针,只需遍历一遍链表。第一个指针先走k-1步,然后两个指针同时向后遍历,当第一个指针走到尾节点时,第二个指针刚好在倒数第k个节点上。注意:代码的鲁棒性!!   链表为空,k为0,k大于链表长度的情况下应该返回...

2018-05-21 17:48:00 79

转载 二进制中1的个数

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:1、将输入的整数不断右移,和整数1做与运算,结果不为0则二进制中1的个数加1。但负数情况下容易陷入死循环,不可取。   2、将整数1不断左移与输入的整数做与运算,判断整数每一位是否为1。但不可以控制循环次数,循环次数固定为整数二进制的位数32,不是最可取的方法。   3、将一个整数减去1,与原来的整数...

2018-05-18 19:35:00 98

转载 变态跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法思路:数学题,找规律即可 int jumpFloorII(int n) { int n1 = 1; while(n>1) { n1 = n1*2; ...

2018-05-17 19:22:00 81

转载 跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:推导找规律,类似斐波那契,用递归或循环实现 int jumpFloor(int n) {   int n1 = 1;   int n2 = 2;    int n3 = 0;   if(n == 1) return n1; ...

2018-05-17 19:13:00 75

转载 斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。思路:1.递归   2.循环int Fib1(int n){ if(n == 1||n == 2)return 1; else return Fib1(n-1)+Fib1(n-2);}int Fib2(int n){ int n1 = 1;...

2018-05-17 18:57:00 99

转载 旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:1.暴力遍历时间复杂度是O(N);   2.采用二分查找法的时间复杂度是O(lgN);...

2018-05-15 20:03:00 94

转载 替换空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy思路:从后向前替换,时间复杂度为O(n),且没有额外开辟新的数组存放替换空格后的字符串   1.先遍历计算字符串中空格数量n,替换后字符串长度:原先字符串长度 + 2*n   2.从后向前遍历字符串,若为空则替换注意...

2018-05-15 10:54:00 69

转载 从尾到头打印链表

题目:输入一个链表,从尾到头打印链表每个节点的值思路:1.递归实现(递归在本质上就是一个栈结构)    2.vector + stack,遍历链表将元素放入栈中,当遍历完整个链表后,再从栈顶开始逐个取出节点的值,放入vector容器中。注意:头节点需要先开辟出空间,不可以直接赋空思路1typedef struct Node{ int nCount;...

2018-05-14 18:23:00 68

转载 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数思路:从右上角元素开始查找,比它大消除该列,比她小消除该行,不断缩小查找矩阵范围注意:1.vector容器获取数组行、列大小   2.while循环内的条件 bool Find(int target...

2018-05-14 16:35:00 88

空空如也

空空如也

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

TA关注的人

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