自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(195)
  • 资源 (22)
  • 问答 (2)
  • 收藏
  • 关注

原创 玩转Windows服务系列——创建Windows服务

玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理ATL 服务

2021-04-15 16:00:09 178

原创 《寒江独钓 Windows内核安全》——串口的过滤

过滤是在不影响上层和下层的接口,在windows系统内核中加入新的层,从而不需要修改上层的软件或者下层的真实驱动程序,就加入了新的功能。1、用到的Windows APIIoAttachDevice——绑定到真实设备上(有名称的设备)/*IoAttachDevice例程将调用方的设备对象附加到命名的目标设备对象,以便将绑定到目标设备的I / O请求首先路由到调用方。*/NTSTATUS IoAttachDevice( PDEVICE_OBJECT SourceDevice, PU

2021-04-12 00:02:54 377

原创 Windows映像劫持调试程序

简介“映像劫持”,也被称为“IFEO”(Image File Execution Options),在Windows NT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而Windows NT架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。出于简化原因,IFEO使用忽略路径的方式来匹配它

2021-03-20 17:07:39 450

原创 驱动开发——WDM+创建设备+与应用层交互

1、内核层代码#include <ntddk.h>#define DEVICE_NAME L"\\Device\\MyFirstDevice"#define SYM_NAME L"\\??\\MyFirstDevice"#define IOCTL_MUL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x9888, METHOD_BUFFERED, FILE_ANY_ACCESS)void DriverUnload(PDRIVER

2021-02-02 22:31:52 342 1

原创 vs2015 + WDK10 + SDK10 编写WDM项目

1、下载地址VS2015 Community WDK10WinSDK102、虚拟机调试环境用来构造虚拟机远程环境,使用windbg调试内核,包括禁用驱动程序强制签名。VirtualKD-Redux-2020.5调试windbg加载、卸载驱动程序A1SysTest v0.3.0.1.exe3、编写驱动程序(一)新建WDM项目(二)新建main.c3、添加以下代码#include <ntddk.h>void DriverUnl

2021-02-02 00:05:53 453

原创 MFC——使用VS2008创建Active x控件

首先了解了容器和服务器程序:容器应用程序是可以嵌入或链接对象的应用程序。例如Word就是容器应用程序。服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序,Excel就是服务器应用程序。1、如何在VS2008中为Active x控件添加属性:https://blog.csdn.net/Beyond_cn/article/details/375310232、MFC...

2019-09-15 16:15:00 611

原创 基于消息的异步套接字实现的聊天程序

基于消息的异步套接字 Windows套接字在两种模型下执行I/O操作,阻塞和非阻塞。在阻塞模式下,在I/O操作完成前,执行操作的WinSock函数会一直等待下去,不会立即返回程序(将控制权交换给程序)。而在非阻塞模式下,WinSock函数无论如何都会立即返回。 Windows Sockets为了支持Windows消息驱动极值,使应用程序开发者能够方便地处理网络通信,它对网络时间采用了基...

2019-08-26 23:21:33 338

原创 多线程同步的四种方式——临界区(线程死锁)

问题的引入:模仿12306多人同时抢票。解决方法:使用临界区对象。临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。它并不是核心对象,不是属于操作系统维护的...

2019-08-19 23:03:27 1964

原创 多线程同步的四种方式——事件对象

问题的引入:模仿12306多人同时抢票。解决方法:使用事件对象。事件对象 事件对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动o重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。 有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通知时,等待该事件的所有线程均变成可调度...

2019-08-18 16:17:10 856

原创 基于多线程的聊天室程序

今天在学习了基于多线程的聊天室程序,另外还加上了socket编程。效果图如下代码如下:1、首先我们需要去加载套接字库,MFC中的函数 AfxSocketInit() 包装了函数 WSAStartup(), 在支持WinSock的应用程序的初始化函数IninInstance()中调用AfxSocketInit()进行初始化,程序则不必调用WSACleanUp(). 需要的头文件...

2019-08-17 22:41:36 613

原创 多线程同步的四种方式——互斥量

问题的引入:模仿12306多人同时抢票。问题代码:#include <Windows.h> //需要调用windows Api#include <iostream>using namespace std;DWORD WINAPI Fun1Proc(LPVOID lpParamter);DWORD WINAPI Fun2Proc(LPVOID lpPar...

2019-08-14 23:13:12 949

原创 程序、进程和线程的区别

程序、进程和线程1、程序和进程程序:是计算机指令的集合,它以文件的形式存储在次磁盘上。进程:通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。2、进程进程是资源申请、调度和独立运行的单位,因此,他使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,他不占用系统的运行资源。进程由两个部分组成:...

2019-08-14 22:53:34 803

原创 c++动态函数库的生成及调用(两种方式)

DLL中导出函数的声明有两种方式:一种方式是:在函数声明中加上__declspec(dllexport);https://blog.csdn.net/qq_37059136/article/details/80161727另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。https://blog.csdn.ne...

2019-07-28 22:13:05 1054

原创 破解vba工程密码——VBA代码

新建一个模块,然后复制以下代码,如果出现“文件解密成功”,则表明解密成功Public Sub VBAPassword() Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解") If Dir(Filename) ...

2019-07-18 14:57:41 4622 1

原创 C++——在非MFC程序中如何使用定时器(timeSetEvent函数)

在MFC程序中,我们可以通过相应WM_TIMER消息,添加处理函数。在非MFC程序中,如果想用定时器,我们可以使用timeSetEvent函数来实现定时器功能。该函数的功能是启动指定的定时器事件。多媒体计时器在其自己的线程中运行。事件激活后,它会调用指定的回调函数,或设置或脉冲指定的事件对象。函数原型:MMRESULT timeSetEvent( UINT uDelay, ...

2019-07-17 19:47:23 1644

原创 VS2008设置捕获非法访问地址异常

VS2008-&gt;Debug-&gt;Exceptions-&gt;Win32 Exceptions-&gt;c0000005 Access violation给勾上,就可以看到从详细的call stack了

2019-01-31 16:58:59 499

原创 C++基于TCP(面向连接)/UDP(面向无连接)的socket编程

基于TCP(面向连接)的socket编程步骤服务器端程序:1、创建套接字(socket);2、将套接字绑定到一个本地地址和端口上(bind);3、将套接字设为监听模式,准备接收客户请求(listen);4、等待客户请求到来。当请求到来后,接收连接请求,返回一个新的对应于此次连接的套接字(accept);5、用返回的套接字和客户端进来通信(send/recv);6、返回。...

2019-01-06 23:14:42 1261 1

原创 mfc—改变控件的颜色、背景、字体以及画图

  本周学习了孙鑫老师的第十课,本节课主要讲的是:画图以及改变控件的颜色、背景、字体、大小。  通过上面四个选项,设置我们画图的形状。下面三个选项,设置我们线条的大小、颜色和字体。首先是选择颜色的窗口:窗口mfc已经为我们写好了,我们只需要调用一下,在单文档的view类里面添加相应点击颜色菜单的函数:void CGraphicView::OnColor(){ // T...

2018-12-09 20:39:02 8378 3

转载 mfc—GetTextMetrics与GetTextExtent的区别

GetTextMetrics:获取当前字体的信息GetTextExtent:获取特定的字符串在屏幕上所占的宽度和高度对于这两个函数的作用,我在编程的时候,也有一定的困惑。因此,我也想,其他人在编程的时候也肯定有 同样的困惑。所以我把他们解释一下。不足之处,还请大家多多的添加 批评~~其实,我们对什么困惑呢?函数的调用方法,还是在返回值上?CDC::GetTextMetrics作用:返回当...

2018-12-02 22:14:49 1630

原创 MFC—工具栏的显示、隐藏以及浮动工具栏关闭时改变菜单的选中状态

  孙鑫老师的第九课,留下的一个作业:当工具栏在悬浮和停靠状态的显示和隐藏,显示前的位置需要和隐藏(关闭)前的位置保持一致。  其实,关于工具栏的隐藏与显示问题,只需要考虑三种状态:(1)在停靠状态下工具栏的显示与隐藏;(2)在悬浮状态下工具栏的显示与隐藏;(3)在悬浮状态下,通过点击关闭按钮去关闭工具栏,然后在显示工具栏的问题。  对于上面所述的第二种情况,要记住工具栏在将要隐藏时刻的窗...

2018-12-02 21:47:41 3531 2

原创 MFC——获取当前字体的高度、宽度等信息

当我们想往屏幕上面写多行内容时,我们需要之前当前文本的宽度和高度信息。我们可以采用以下方法:void CDialogView::OnDraw(CDC* pDC){ CDialogDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; CFont font; font.CreatePointFont(...

2018-11-18 22:01:28 8093

原创 Visual Assist X 快捷键

Visual Assist X 快捷键【Visual Assist X 快捷键】Shift+Alt+F Find References 查找引用Shift+Alt+S FindSynbolDialog 打开查找符号对话框Alt+G GotoImplementation 调到实现Alt+M ListMethodsInCurrentFileAlt+Left Arrow Navi...

2018-11-18 20:51:53 405

原创 MFC——CPropertySheet(属性表单)和CPropertyPage(属性页)——实现分页显示

今天在学习的时候,实现了一种分页显示的功能。如下图:以下是实现步骤:1、在资源文件中添加三个IDD_PROPPAGE_LARGE,也就是三个dialog。我给他们取名为IDD_PROP1、IDD_PROP2、IDD_PROP3,然后随便添加一些控件。2、我们新加三个类,名字叫做CProp1、CProp2、CProp3,基类选择CPropertyPage。在vs2008里...

2018-11-17 23:59:17 4473

原创 MFC-VS2008建立数值型的关联变量

由于vs2008取消了Class Wizard,有时候找不到在哪里建立数值型的关联变量。首先,我们右键点击我们需要建立关联变量的控件,点击添加变量。如下图然后,我们选择选择添加变量的类型。Control为控件型,Value为数值型。添加完后的效果:void CComputerDlg::DoDataExchange(CDataExchange* pDX){ CDialo...

2018-08-04 11:27:19 400

原创 MFC-对话框组合应用-QQ

最近学习了mfc中基于对话框的应用程序开发。总共实现了以下功能:1、登录与登录账户管理;2、账户登录权限管理;3、录入对话框与员工信息管理;具体功能有以下部分:1、登录2、注册3、主对话框4、账户信息管理5、修改用户信息6、员工信息管理7、修改员工信息8、删除员工信息9、添加员工信息10、打开文件...

2018-07-23 23:32:04 440

原创 MFC-核心类库-CWnd的成员函数介绍(三)

CRect类数据成员有left,top,right,和bottom。left左上角X坐标,top左上角Y坐标,right右下角X坐标,bottom右下角Y坐标。rect.InflateRect(3,3);//修改CRect的宽和高,每次增加3,3rect.OffsetRect(5,5);//修改CRect的x、y值,每次增加5,5CWnd类中GetWindowRect(rect);MoveWind...

2018-07-08 21:41:12 1909

原创 MFC-核心类库-CWnd的成员函数介绍(二)

1、CWnd :: FromHandleCWnd在给定窗口句柄时,返回指向对象的指针。如果CWnd对象未附加到句柄,CWnd则会创建并附加临时对象。static CWnd * PASCAL FromHandle(HWND hWnd);2、CWnd::Attach当我们使用MFC创建一个窗口时,是分两步进行的:第一步,new一个CWnd对象,这一步是创建C++对象,但是其中的HWND还是非法的,因为...

2018-07-08 12:02:20 732

原创 MFC-核心类库-CWnd的成员函数介绍(一)

1、CWnd::Create函数 创建指定的子窗口并将它附加到 CWnd 对象。virtual BOOL Create( LPCTSTR lpszClassName, //窗口类型。 LPCTSTR lpszWindowName, //窗口名称。 DWORD dwStyle, //按位组合的窗口样式。 Const RECT&...

2018-07-05 21:48:27 2765

原创 MFC—对话框程序—模式对话框与非模式对话框

一、根据主窗口类型,MFC软件工程可以分为以下几种架构模型:1、SDI(Single Document Interface):单文档界面,一个主框架窗口下只能编辑一份文档。例如:记事本和画笔等。2、MDI(Multiple Document Interface):多文档界面,一个主框架窗口下可以同时编辑多份文档。例如:VC++6.0,Photoshop等软件。3、基于对话框的软件模型:主窗口是通过...

2018-07-03 22:29:21 7488 2

原创 常量指针,指针常量,函数指针与指针函数

1、常量指针:本质是一个指针,表示一个指向常量的指针const int * p;    //能够改变指针的指向,但不能改变指针所指对象的值2、指针常量:本质是一个常量,表示一个指针是常量int * const p;    //不能改变指针的指向,但可以改变指针所指对象的值3、函数指针:本质是一个指针,表示一个指向函数的指针void (*p)();4、指针函数:本质是一个函数,表示函数的返回值是指针...

2018-03-18 14:05:14 707

原创 类模板+函数模板

    在c++中标准模板库主要由容器、算法和其他组件组成,将需要重复利用的功能以模板的形式封装。一般情况下,标准模板库中将算法实现为函数模板,而将容器实现为类模板。    函数模板:使用函数模板可以重写通用函数。    类模板:将类的成员类型参数化。类模板code:#include &lt;iostream&gt;#include &lt;stdio.h&gt;using namespace...

2018-03-11 21:32:48 276

原创 PAT乙级(Basic Level)真题

A+B和C (15)时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)题目描述给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。输入描述:输入第1行给出正整数T(输出描述:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,

2017-11-29 22:14:36 1095

原创 MFC第一天——Win32实现计算器

今天在学习MFC,第一节课讲得是Win32程序开发,Win32主要使用C语言直接使用API进行开发。Windows95及以后的版本都是32位的操作系统,因此Windows程序开发也叫Win32程序开发。今天的任务是写一个计算器。效果图如下:首先我们需要登录:登录成功后,就可以显示计算器了:加减乘除,都可以(还是浮点数运算)这是项目的文件形式:窗口的设

2017-11-20 20:54:56 656

原创 r语言常用函数(三)

小技巧:当我们输命令时,一行不足以容纳我们想要书写的内容时,我们可以按shift+enter键将一个命令分成多行1.2.9  列表  R列表是以其他对象为成分的有序集合。列表的成分与向量的元素不同,他们不一定是同一数据类型、模式或者相同长度。> mylist<-list(sid=34453,sname="John",marks=c(14.3,12,15))> mylist$sid

2017-11-07 22:03:59 1701

原创 r语言常用函数(二)

1.2.7 数据子集可以在方括号内放入元素的位置来获取向量中的某个元素,正数x表示显示下标为x的元素,负数x表示不显示下标为x的元素。> x<-c(-1,0,1,2,3)> x[2][1] 0> x[-2][1] -1 1 2 3方括号中的命令是逻辑条件> x<-c(-1,0,1,2,3)> x[x>0][1] 1 2 3通过函数names()来给向量中的元素命名

2017-11-06 21:03:47 8162

原创 r语言常用函数(一)

输入ls()或者objects()命令列举出当前内存中的对象> ls()[1] "x" "y"> objects()[1] "x" "y"如果不再需要一个对象时,可以通过rm来删除他> rm(y)向量是R中最基本的数据对象,所有对象都有模式和长度属性。向量在R中使用c()函数创建> v<-c(1,2,3,4,5)> v[1] 1 2 3 4 5> length(v)

2017-11-03 23:10:50 3015

原创 R语言连接mysql

一些常用的数据,处理好,放在mySQL里,以后使用起来也方便。可以用R直接进行分析,具体步骤如下:1、R下载RODBC包,安装好。install.packages(RODBC);2、在http://dev.mysql.com/downloads/connector/odbc下载mySQL ODBC,安装好。3、windows:控制面板->管理工具->数据源(ODBC)->双击-

2017-11-03 11:24:46 323

原创 nyoj20——吝啬的国度

吝啬的国度时间限制:1000 ms  |  内存限制:65535 KB难度:3描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。输入第一行输入一个整数M表示测试数据共有M(1每组测试数据

2017-10-25 21:33:56 191

原创 递归与分治——汉若塔问题

移动规则:(1)每次只能移动1个圆盘;(2)任何时刻都不允许将较大的圆盘压在较小的圆盘之上;(3)在满足1,2的前提下,可将圆盘移到a,b,c中的任意一塔座上。#include #include #include #include using namespace std;void move(char a,char b){ printf("%c->%c\n",

2017-10-23 23:13:56 329

原创 递归与分治——排列问题

#include #include #include #include using namespace std;void swap(int a[],int i,int j){ int t=a[i]; a[i]=a[j]; a[j]=t;}void perm(int a[],int k,int m){ if(k==m) { f

2017-10-23 21:21:35 336

A1SysTest v0.3.0.1.exe

A1SysTest v0.3.0.1.exe

2021-02-01

VirtualKD-Redux-2020.5.7z

虚拟机远程调试

2021-02-01

Tcpview.rar

https://jingyan.baidu.com/article/39810a239f4bf9b636fda6e1.html

2020-03-14

Depends.rar

Depends.exe 是用来反编译VC程序的工具,可以查看PE模块的导入模块以及导入和导出的函数,以及动态剖析PE模块的依赖性和解析C++的函数名称 可分析dll和exe所依赖的dll,可以看到dll以及dll的函数,可以查看导入导出函数 https://blog.csdn.net/tieshuxianrezhang/article/details/79234106

2020-03-14

Dbgview.exe

Sysinternals公司的系列调试工具。 debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。 https://blog.csdn.net/bcbobo21cn/article/details/52401087

2020-03-14

Procmon.exe

Procmon.exe —— 强大的系统监视工具 https://blog.csdn.net/dpsying/article/details/51894060

2020-03-14

procexp.exe

Procexp.exe —— 强大的进程管理器 https://blog.csdn.net/dpsying/article/details/51893986

2020-03-14

Procdump.zip

https://blog.csdn.net/iwilldoitx/article/details/80526547 程序调试时生成dump包

2020-03-13

windbg+Dbgview.rar

教程:https://www.cnblogs.com/fang-beny/p/3582653.html

2019-10-16

windbg安装包x86_x64.rar

调试教程https://www.cnblogs.com/gaochundong/p/windbg_cheat_sheet.html

2019-09-21

使用vs2008 开发的 mfc active x控件

学习孙鑫老师的Active X控件生成的代码,上传一份保存。

2019-09-15

Office UI设置RibbonX

要定制Office 用户界面,必须编写XML代码。虽然VBA在定制界面时也能起到关键的作用,但它不是必需的。而XML在定制中几乎总是必需的,但也有例外。例如弹出式菜单和一些出现在加载项选项卡中的VBA定制。

2019-01-15

C++内存与性能优化

自己在网上下载的,写的很好,为了方便大家阅读,所以我用更少的积分给大家下载

2019-01-05

MFC写的QQ应用程序

这是我学习了mfc后,写了一个基于对话框的应用程序,有兴趣的可以看下

2018-07-23

plsql 32+64位破解版

32位的Oracle对应于32位的plsql,64位的Oracle对应于64位的plsql,否则会报错。查看Oracle 版本https://www.2cto.com/database/201109/105845.html

2018-03-09

2013-2017历年的软考数据库系统工程师真题

从2013-2017年的数据库系统工程师的真题,无破损,全高清。

2018-03-02

Tomcat8.0免安装版

可以配合myeclipse使用,无需安装,直接使用。。。。。

2017-11-21

mfc实现计算器

简单实现计算器的加减乘除功能,Win32的程序开发,。。。

2017-11-20

Visual C++开发实战1200例(第Ⅰ卷)

Visual C++开发实战1200例,ISBN:9787302244523,作者:刘锐宁,梁水,李伟明 等编著

2017-11-14

Myeclipse-2014-GA-破解文件

Myeclipse-2014-GA-破解文件可以轻轻松松破解myeclipse2014

2017-10-23

SpringMVC所需要的jar包

Spring框架jar包;commons.logging-1.1.1.jar;jstl-1.1.2.jar和standard-1.1.2.jar;

2017-07-21

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

TA关注的人

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