自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 多线程之简单定时器的实现代码

MultiThreadTimer.h#ifndef MULTI_H#define MULTI_H#include <vector>#include <Windows.h>#include <process.h>#include <iostream>using namespace std;typedef void(*TimerFunc) (LPVOID);typedef struct

2017-08-28 22:35:54 481

原创 内核对象(3)之单实例程序的创建

前面讲过使用命名对象来跨进程共享内核对象 现在我们来讲讲单实例程序的创建 其实很简单,使用Create内核对象的函数,当第二次创建的时候,会提示ERROR_ALREADY_EXISTS ,这个时候我们要终止程序的运行 以下是一个例子,大家只需关注入口函数的前9行#include "stdafx.h"#include <Windows.h>#include <Psapi.h>#includ

2017-08-28 22:13:20 277

原创 内核对象(2)之跨越边界进程共享内核对象

在两个进程之间共享内核对象的方法有很多 1.通过对象句柄的继承性共享内核对象,但是这两个进程之间必须要存在父子关系 步骤是:创建一个内核对象,将该内核对象的安全属性的bInheritHandle属性置为true,再用CreateProcess创建一个进程,将参数中的bInheritHandles也置为true,这样再新进程创建完成时,系统会自动复制父进程的句柄表中的可继承标志为true的句柄到子

2017-08-26 21:15:41 319

原创 内核对象(1)

内核对象的含义: 内核对象就是类似符号对象、事件对象、文件对象、文件映射对象、 I / O完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象,信标对象、线程 对象和等待计时器对象等 关于内核对象的注意点: 1.内核对象是内核而不是进程所拥有的 2.由于第1点的原因,内核对象的生存周期可能比创建他的进程周期还要长(只要内核的引用计数还没变为0),举个例子,我在某个进程A里创建了

2017-08-25 21:17:17 393

原创 线程同步

第一种方法是临界区 临界区是一段独占对某些资源访问的代码,同一时刻内只能有1个线程访问资源 CRITICAL_SECTION cs;//定义一个全局变量 EnterCriticalSection(&cs);//进入临界区 LeaveCriticalSection(&cs);//离开临界区 DeleteCriticalSection(&cs);//删除临界区对象 例一#include<Wi

2017-08-21 23:05:00 190

原创 线程创建

CreateThread(SEC_ATTRS SecurityAttributes, ULONG StackSize, SEC_THREAD_START StartFunction, PVOID ThreadParameter, ULONG CreationFlags, PULONG ThreadId) SecurityAttributes:指向一个SEC_ATT

2017-08-19 17:48:48 165

原创 WinExec,ShellExecute,CreateProcess

创建进程函数的使用 WinExec(LPCSTR lpCmdLine,UINT uCmdShow); lpCmdLine: 文件名和参数; 如没指定路径会按以下顺序查找: 程序目录/当前目录/System32/Windows/PATH环境变量 lpCmdLine举例:”java -?”//启动jdk的帮助功能 uCmdShow: SW_FORCEMINIMIZE: 在WindowNT5.0

2017-08-16 16:14:33 1080

原创 创建DLL详解(3)

前面我们讲过了DLL导出函数和DLL导出类,今天我们讲讲纯资源DLL的写法 首先创建DLL 这样工程就创建完成 我们在资源文件里添加了两个图片,在这里我们记住第二张图片的ID IDB_BITMAP2 注意这里要设置无入口点为true 设置流程 点击确定 点击编译,编译完成,可以再其他工程中使用这个DLL了 接下来我们测试下这个DLL 找到刚才工程的resour

2017-08-15 22:22:41 181

原创 创建DLL详解(2)

上一篇中我们讲到DLL导出函数的使用,这一篇我们讲下DLL导出类的使用 首先创建工程 选择DLL类型 创建工程完成后 这里DLLClass.h是我手动添加的 其实这里导出类的创建也很简单 直接再类的前面加上_declspec(dllexport) 例如class _declspec(dllexport) People { public: P

2017-08-14 23:50:19 175

原创 创建DLL详解(1)

我们知道dll有很多好处 1.可以把用过的函数或者类封装起来,供别人调用,而且还不公开源码 2.可以在不重新编译的情况下,更新程序 3.DLL可以实现程序模块化,一个团队,每个人可以完成不同的部分,完成后可以直接拼接 那么怎么创建DLL工程呢 选择win32项目 选择DLL类型 这是DLL的入口函数,如果你不想在DLL被加载时做处理,这个地方可不管 重点在于对应于工程

2017-08-14 22:32:38 296

原创 KMP算法详解

关于Next数组,我已经有过说明 但是有了next数组怎么用呢 现在我进行简单的图解,为大家讲解一下 简单设置两个变量I,q; #include <iostream>using namespace std;void GetKMP(char* target,int target_length,int next[]);void KMP(const char* P,const c

2017-08-14 13:42:55 175

深度探索C++对象模型中文清晰版.rar

本书扫描版,但还是比较清晰的,对于想了解c++对象内部结构的同学来说,是本不 可多得的好书,如果觉得书不错,请给予正面评价,谢谢

2019-05-22

windows核心编程第7章 SchedLab

windows核心编程第7章,自编代码,无需用windows核心编程的库文件,如看这本书不懂的,可以下载下来看看,代码如有错误,请提出

2017-09-18

windows核心编程 JobLab.rar

windows核心编程附带的资源在win7上有些运行不畅(可能跟函数库有关系),我按照自己的理解重新写了一个,不需要原作者编撰的库

2017-09-13

空空如也

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

TA关注的人

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