自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (9)
  • 收藏
  • 关注

原创 十六、计算机视觉-Scharr算子 和 Laplacian算子

当周围和高于中心时,减弱中心像素;最终的 p5 表示了中心像素点的新值,它等于周围相邻像素点的值之和减去中心像素点的值的四倍。算式中的 4×p5 表示了中心像素点的值被乘以4,这是因为在Laplacian算子的卷积核中,中心像素点的系数是-4,因此需要将其乘以4进行加权。首先,将3x3的卷积核以上面-4的位置为中心点依次对图像中的每个像素点进行卷积操作,这个和前面一样,将卷积结果作为图像的每个像素点的新像素值。对于卷积结果,若像素值较大,则表示该像素点周围的灰度值变化较大,可能是图像中的边缘或轮廓。

2024-04-08 21:30:47 639

原创 十五、计算机视觉-sobel算子

上节课我们学习了梯度的知识,学习了如何去计算梯度,本节我们继续学习计算梯度的方法,本节我们学习使用Sobel算子计算梯度,这与上节课梯度计算方法有所不同,一般如果需要准确地计算图像的梯度信息,特别是对边缘信息感兴趣,通常会选择Sobel、Scharr或Laplacian算子。而如果更关注形态学特征或者想要一种简单快速的边缘检测方法,可以考虑使用cv2.morphologyEx。

2024-03-12 14:51:57 1149

原创 十四、计算机视觉-形态学梯度

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-03-03 17:05:55 425

原创 十三、计算机视觉-顶帽运算和底帽运算

我们回顾之前讲的内容 什么是开运算,开运算是先腐蚀在膨胀 开运算结果就是我们去掉了图像中的毛刺、杂点等。所以 顶帽操作通过突出图像中的亮部分和细微结构,以及抑制背景,可以帮助我们更好地理解图像内容,从而更有效地进行后续的图像分析和处理。例如我有一个图片上有一个空洞,我通过底帽把空掉填补上了,那我我拿填补上的图像减去原始图像是不是就得到了 我填补的空洞部分。底帽操作的目标是突出图像中的暗部结构或物体,同时抑制背景。换句话说,底帽操作可以帮助我们发现图像中较暗的细节或物体,而不受周围背景的干扰。

2024-02-29 12:58:32 360

原创 十二、计算机视觉-开运算与闭运算

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-02-27 17:42:06 432

原创 十一、计算机视觉-膨胀操作

上节我们学习了腐蚀操作,本节我们讲一下膨胀操作,膨胀和腐蚀实际上是相反的操作。上节我们把云峰这2个字周围没用的像素去掉了,但是云峰这2个字也变细了,如果我们想在变粗一点 我们就可以用膨胀操作,所以腐蚀和膨胀可以配合使用来达到我们要的效果。有了上节的讲解,本节就不讲太细了,原理和腐蚀都差不多,如果不明白的,可以返回上节在看一下。提示:以下是本篇文章正文内容,下面案例可供参考膨胀操作的主要目的是增加或加强图像中的前景区域。

2024-02-23 13:49:22 693 1

原创 十、计算机视觉-腐蚀操作

在我们生活中常会见到腐蚀,比如金属表面受到氧化或其他化学物质的侵蚀,导致金属表面出现腐蚀、或者生锈。木材受到细菌或者昆虫的侵蚀,导致木材内部和表面逐渐腐朽或者磨损。在计算机世视觉中腐蚀操作和现实中类似,腐蚀主要用于减小或消除图像中的边缘或细小的物体。在这个操作中,我们使用一个称为结构元素的小矩形或圆形区域来“侵蚀”图像中的像素。具体来说,当结构元素与图像中的像素进行比较时,只有当结构元素覆盖的所有像素都是前景像素(白色像素)时,该像素才被视为前景像素,否则被视为背景像素(黑色像素)。

2024-02-21 18:13:22 1203

原创 九、计算机视觉-形态学基础概念

现在开始后面几课将介绍计算机视觉中的形态学理论和技术,包括基本的形态学操作、形态学滤波、形态学轮廓分析等内容。包括如何应用形态学方法来处理图像以及解决实际问题。本节课将简要介绍形态学,但如果您对此部分不感兴趣或理解困难,可以跳过。在后续课程中,我们将通过实际案例来详细讲解形态学,以帮助您更好地理解和应用。形态学是一种基于数学形态学理论的图像处理方法,在图像处理中,形态学主要通过结构元素和一系列基本的形态学操作来描述和处理图像中的特征。

2024-02-20 14:08:26 665

原创 八、计算机视觉-边界填充

在Python中使用OpenCV进行边界填充(也称为zero padding)是一种常见的图像处理操作,通常用于在图像周围添加额外的像素以便进行卷积或其他操作。下面是使用OpenCV进行边界填充的基本原理和方法。

2024-02-18 13:08:19 870

原创 七、计算机视觉-图像的ROI区域

在计算机视觉中,ROI代表感兴趣区域(Region of Interest),它是指图像或视频中被指定为需要特别关注或处理的区域。ROI可以帮助减少计算量,并且在处理大型图像或视频时可以提高处理效率。上面代码演示了 使用Haar 特征分类器或基于深度学习的人脸检测器 去检测人脸部分,Haar的使用后面会单独讲到 这里只需要明白ROI区域的概念就行。

2024-02-16 10:56:48 1129

原创 六、图像的几何变换

在计算机视觉中,图像几何变换是指对图像进行平移、旋转、缩放、仿射变换和镜像变换等操作,以改变图像的位置、尺寸、形状或视角,而不改变图像的内容。这些变换在图像处理、模式识别、机器人视觉、医学影像处理等领域具有广泛的应用。通过图像几何变换,可以实现图像的校正、配准、增强和重建等功能,为后续的图像分析和理解提供了重要的基础。

2024-02-14 11:24:00 879

原创 五、计算机视觉-视频流的读取与操作

当我们谈论计算机视觉时,我们常常会涉及到处理图像和处理视频两个不同的领域。在上一节课中,我们学习了如何处理静态图像,即一张张静止的图像。而在本节课中,我们将探讨如何处理视频。

2024-02-07 13:08:47 397

原创 四、计算机视觉-图像的读取显示与保存

图像是计算机视觉领域的基本数据载体,理解图像的读取、显示与保存是进行图像处理、分析和识别的第一步。本节课我们不光是为了学习处理图像的那些方法如何使用,更重要的是从本节课学习能让你对计算机世界中的图像有一个更清晰的认识。在本课程中,我们将学习如何使用Matplotlib和OpenCV库来实现图像的读取、显示和保存操作。我们将从最基本的图像处理开始,介绍图像读取的方法,讨论图像的通道顺序,然后深入探讨图像的显示与可视化,以及图像的保存格式和质量参数。

2024-02-06 12:38:27 941 1

原创 三、计算机视觉-图像是什么

本节课分析一下在计算机世界中 图像到底是什么。只有我们知道图像的本质,后面对图像的处理我们才能真正的理解他的原理,才能举一反三。基于上面的分析,我们知道在计算机的世界中,它看一张图片就是通道信息和亮度信息等,他知道图片有3个通道,每个通道则是1个灰度图,也就是包含亮度信息的图片。他并不知道这是什么颜色的图片。这怎么理解呢,看下图:上图分别是:原图、R通道图,G通道图,B通道图,可以看出后面3个图没有颜色 只有亮度信息 我们看鸟头部分是红色,所以R通道图红色部分则是白色 代表红色,同样G通道B通道都是如此。

2024-02-05 12:23:06 663 1

原创 二、计算机视觉-第一个程序

可能有人说第一个程序不就是print一个hello world吗。本来我也想写一个hello world ,但是这篇文章如果只是一个hello world有点应付的感觉,还是多写点吧,凑点字数。顺便也能让大家提起点兴趣看看我们后面能做出什么效果。也可以验证 一下我们上节课搭建的环境是否正常,是否可以运行我们的程序。到这里 第一个程序就完成了,下节课开始讲解处理图像的一些方法。

2024-02-02 11:55:34 398

原创 一、计算机视觉-快速搭建开发环境

搭建环境Anaconda 是必不可少的,用Anaconda 我们可以很容易的部署计算机视觉开发环境(包括用到的包、和IDE等)下面我们看下Anaconda 是什么,为什么要用Anaconda。

2024-02-01 19:02:49 916

原创 基于openai chatgpt和embeddings制作私有知识库聊天机器人

在当今信息爆炸的时代,构建高效、个性化的知识服务成为了企业和组织的迫切需求。为满足这一需求,基于OpenAI ChatGPT和Embeddings的私有知识库聊天机器人正在崭露头角。OpenAI ChatGPT是一种基于深度学习的自然语言处理模型,通过对大量文本数据进行训练,能够理解和生成人类语言。而Embeddings则是将文本数据映射到低维向量空间的技术,捕捉了文本之间的语义和语法关系。结合这两者的优势,私有知识库聊天机器人能够像人类专家一样回答用户的问题,并提供准确、针对性的信息。

2023-06-24 11:51:16 1031 2

原创 开发chatgpt 之 SSE(Server-Sent Events) 发送POST请求 fetch的实现

之前写过一篇使用 SSE(Server-Sent Events)发送GET请求接受chatgpt Stream数据的文章:从零开始开发自己的chatgpt平台 之 SSE(Server-Sent Events)客户端和服务端在文章最后留了一个问题 SSE是通过get参数发送消息的,但是get是有限制的,因此这个方法并不好,那如何像openai一样让SSE发送POST 请求呢?本文讲解如何使用fetch实现。

2023-06-23 12:28:23 2516

原创 chatgpt Function calling(函数调用)功能讲解和应用示例

结合上面的示例你应该对chatgpt Function calling(函数调用)的用法和用途有所了解了,如果还是不明白可以私信,或者联系我。

2023-06-16 17:55:21 5379 2

原创 chatgpt API接口中文说明介绍(一)

chatgpt接口官方的名字叫做Chat completions,是指ChatGPT在用户输入一部分内容后,为用户推荐的可能的自动完成内容。这些自动完成的内容可以是一个词、短语、句子甚至是一篇文章等等。Chat completions可以让用户更快地输入想要表达的内容,同时也能提高用户的交互效率和满意度。本文展示了如何调用OpenAI ChatGPT API,以及一些参数的说明,提供了使用技巧和Python和HTTP请求代码示例。下一篇讲一下其他的一些参数的作用,例如温度等。

2023-06-13 13:42:19 8929

原创 百度好看视频http POST分析实现自动发视频

前几天一个朋友让帮忙做一个百度好看视频自动上传的软件,分析了几个小时。主要难点在于authorization如何获取,分析js的加密方法。还有百度的旋转验证码如何去验证。本文将讲解一下上传一个视频的完整协议,以及其中使用的各个参数如何获取 如何加密。本文只分析协议,你可以用你熟悉的语言实现。文章中最后提到的旋转验证码,如果是自己的账号一般不会出现验证码,如果是购买的普通账号或者百度ck账号会出现验证码。因为篇幅问题,这里就不讲了后面在进行讲解。

2023-05-23 13:32:27 598

原创 从零开始开发自己的chatgpt平台 之 SSE(Server-Sent Events)客户端和服务端

我们都知道chatgpt官方是流式(stream)传输,也就是打字机的效果,当我们打开openai的官方网址使用chatgpt对话时 我们会发现他并不是使用websocket实现的。分析一下他的代码发现 他是使用SSE(Server-Sent Events)技术实现的打字机效果。上面讲述了其中一种实现双向通信的方式,你可能发现了,这种方式并不是太好,因为客户端的消息是放到get参数中的,我们知道get参数是有限制的,因此这个方法并不完美。我们抓取openai官方的数据。

2023-04-24 12:21:30 2993 1

原创 从零开始开发自己的chatgpt平台 之 http客户端和服务端

ChatGPT是一个基于GPT(GPT-3.5、GPT-4.0、GPT-5.0)架构的大型语言模型,用于聊天和自然语言处理。它由OpenAI开发,并在许多应用程序中得到广泛使用。本文将为新手介绍ChatGPT的开发过程,包括chatgpt服务端和客户端的实现。可以自己使用,也可以提供服务给别人使用。关于API参数前面2篇已经介绍了 这里就不介绍了。chatgpt API接口中文说明介绍(一)chatgpt API接口中文说明介绍(二)

2023-04-14 17:03:43 1312

原创 chatgpt API接口中文说明介绍(二)

上一篇介绍了chatgpt的 接口和使用方法。其中用到了2个参数 model和messages,实际上官方提供的参数不止这2个,本文介绍一下其他的参数。这两篇介绍了一下chatgpt的参数以及基本的使用方法,后面会介绍更多的chatgpt在实际中的应用,已经其他一些开源模型的搭建以及微调等。

2023-04-12 22:23:14 13396 5

原创 MT4开发文档之 Server API: Hooks and Trade Functions

本文来自MT4开发文档,可自行翻译提示:以下是本篇文章正文内容,下面案例可供参考。

2022-10-07 15:31:37 1307

原创 MT4开发 之开发自己的数据源系统(dde UniversalDDEConnector )

之前有个客户要求说自己服务器是通过DDE(UniversalDDEConnector)获取别人的MT4行情提供给自己平台的,现在想自己去实现一个DDE 达到不从MT4客户端获取行情,而是其他某平台获取行情。提示:如有任何疑问可在下方留言或者私信提示:这个程序实现起来难度不大,只是记录一个分析的过程,希望对你正在做的事情有所帮助。如有任何疑问可在下方留言或者私信。

2022-10-05 18:33:04 930

原创 MT4插件开发 之 通过managerAPI获取实时行情数据

之前做crm需要把MT4行情实时显示到CRM中,又或者你需要把MT4的行情实时推送到自己的平台中,可以有多种方式去实现,可以连接数据源获取,可以通过serverAPI的方式获取也可以通过managerAPI获取,这里就不一一讲解了,本文讲解如果使用managerAPI获取。提示:如有疑问可在下方留言或私信说明,博主每天抽空回复Pumping。

2022-10-04 13:08:25 1905 1

原创 MT4插件开发简介(开发思路)

MT4开发官方提供的有managerAPI和serverAPI,本文将介绍一下二者的区别,以及什么情况下是使用mannagerAPI什么情况使用serverAPI,希望对你开发有所帮助,如有疑问可在下方留言不管使用哪种方式去开发适合自己需求的是最好的,并不是serverAPI一定比managerAPI要好,反之也一样,得根据自己需求去选择。后续会陆续更新一些MT4相关技术,想了解更多可以关注一下,有任何疑问可在下方留言交流。

2022-10-03 18:09:08 1921

原创 MT4 serverAPI开发接口(头文件)

同上篇managerAPI接口一样,下面是serverAPI提供的接口,可以保存为.h文件直接导入到自己工程中使用。具体如果使用可看我的其他文章。

2022-10-03 17:42:01 1102

原创 MT4 managerAPI 接口(头文件)

【代码】MT4 managerAPI 接口(头文件)

2022-10-03 17:31:50 2695 3

原创 test

test11

2016-12-30 20:44:40 1682

原创 测试

测试strstr110

2015-06-10 13:08:17 187

Windows核心编程(第五版)中文完整高清 附源码

网上找的基本不完整 或者不清晰,所以传一个高清的完整版,附带源码。 共一百多兆,提供百-度网盘的下载地址。 目录: 第I部分 必备知识 第1章 错误处理 3 1.1 定义自己的错误代码 7 1.2 ErrorShow示例程序 7 第2章 字符和字符串处理 10 2.1 字符编码 11 2.2 ANSI字符和Unicode字符 与字符串数据类型 12 2.3 Windows中的Unicode函数 和ANSI函数 14 2.4 C运行库中的Unicode函数 和ANSI函数 16 2.5 C运行库中的安全字符串函数 17 2.5.1 初识新的安全字符串函数 18 2.5.2 在处理字符串时如何获得 更多控制 21 2.5.3 Windows字符串函数 23 2.6 为何要用Unicode 24 2.7 推荐的字符和字符串处理方式 25 2.8 Unicode与ANSI字符串转换 26 2.8.1 导出ANSI和Unicode DLL 函数 28 2.8.2 判断文本是ANSI还是 Unicode 29 第3章 内核对象 32 3.1 何为内核对象 32 3.1.1 使用计数 34 3.1.2 内核对象的安全性 34 3.2 进程内核对象句柄表 36 3.2.1 创建一个内核对象 37 3.2.2 关闭内核对象 38 3.3 跨进程边界共享内核对象 42 3.3.1 使用对象句柄继承 42 3.3.2 改变句柄的标志 45 3.3.3 为对象命名 46 3.3.4 终端服务命名空间 50 3.3.5 专有命名空间 51 3.3.5 复制对象句柄 58 第II部分 工作机制 第4章 进程 65 4.1 编写第一个Windows应用程序 66 4.1.1 进程实例句柄 71 4.1.2 进程前一个实例的句柄 72 4.1.3 进程的命令行 73 4.1.4 进程的环境变量 74 4.1.5 进程的关联性 79 4.1.6 进程的错误模式 79 4.1.7 进程当前所在的驱动器 和目录 80 4.1.8 进程的当前目录 81 4.1.9 系统版本 82 4.2 CreateProcess函数 85 4.2.1 pszApplicationName 和pszCommandLine参数 86 4.2.2 psaProcess,psaThread 和bInheritHandles参数 87 4.2.3 fdwCreate参数 89 4.2.4 pvEnvironment参数 91 4.2.5 pszCurDir参数 92 4.2.6 psiStartInfo参数 92 4.2.7 ppiProcInfo参数 98 4.3 终止进程 100 4.3.1 主线程的入口点函数返回 100 4.3.2 ExitProcess函数 101 4.3.3 TerminateProcess函数 102 4.3.4 当进程中的所有线程终止时 103 4.3.5 当进程终止运行时 103 4.4 子进程 104 4.5 管理员以标准用户权限运行时 106 4.5.1 自动提升进程的权限 109 4.5.2 手动提升进程的权限 111 4.5.3 何为当前权限上下文 112 4.5.4 枚举系统中正在运行的 进程 114 4.5.5 Process Information示例 程序 115 第5章 作业 121 5.1 对作业中的进程施加限制 124 5.2 将进程放入作业中 131 5.3 终止作业中的所有线程 132 查询作业统计信息 132 5.4 作业通知 135 5.6 Job Lab示例程序 138 第6章 线程基础 140 6.1 何时创建线程 141 6.2 何时不应该创建线程 143 6.3 编写第一个线程函数 144 6.4 CreateThread函数 144 6.4.1 psa参数 145 6.4.2 cbStackSize参数 145 6.4.3 pfnStartAddr和pvParam 参数 146 6.4.4 dwCreateFlags 147 6.4.5 pdwThreadID 147 6.5 终止运行线程 148 6.5.1 线程函数返回 148 6.5.2 ExitThread函数 148 6.5.3 TerminateThread函数 149 6.5.4 进程终止运行时 149 6.5.5 线程终止运行时 150 6.6 线程内幕 150 6.7 C/C++运行库注意事项 153 6.7.1 用_beginthreadex而不要用 CreateThread创建线程 161 6.7.2 绝对不应该调用的C/C++ 运行库函数 161 6.8 了解自己的身份 162 6.8.1 将伪句柄转换为真正的 句柄 163 第7章

2012-10-27

Windows核心编程(第五版)中文完整高清+附源码

网上找的Windows核心编程大多不完整 不清晰。所以上传一个完整的书籍+源码。共一百多兆 ,提供的是百度网盘的下载地址。 目录: 第I部分 必备知识 第1章 错误处理 3 1.1 定义自己的错误代码 7 1.2 ErrorShow示例程序 7 第2章 字符和字符串处理 10 2.1 字符编码 11 2.2 ANSI字符和Unicode字符 与字符串数据类型 12 2.3 Windows中的Unicode函数 和ANSI函数 14 2.4 C运行库中的Unicode函数 和ANSI函数 16 2.5 C运行库中的安全字符串函数 17 2.5.1 初识新的安全字符串函数 18 2.5.2 在处理字符串时如何获得 更多控制 21 2.5.3 Windows字符串函数 23 2.6 为何要用Unicode 24 2.7 推荐的字符和字符串处理方式 25 2.8 Unicode与ANSI字符串转换 26 2.8.1 导出ANSI和Unicode DLL 函数 28 2.8.2 判断文本是ANSI还是 Unicode 29 第3章 内核对象 32 3.1 何为内核对象 32 3.1.1 使用计数 34 3.1.2 内核对象的安全性 34 3.2 进程内核对象句柄表 36 3.2.1 创建一个内核对象 37 3.2.2 关闭内核对象 38 3.3 跨进程边界共享内核对象 42 3.3.1 使用对象句柄继承 42 3.3.2 改变句柄的标志 45 3.3.3 为对象命名 46 3.3.4 终端服务命名空间 50 3.3.5 专有命名空间 51 3.3.5 复制对象句柄 58 第II部分 工作机制 第4章 进程 65 4.1 编写第一个Windows应用程序 66 4.1.1 进程实例句柄 71 4.1.2 进程前一个实例的句柄 72 4.1.3 进程的命令行 73 4.1.4 进程的环境变量 74 4.1.5 进程的关联性 79 4.1.6 进程的错误模式 79 4.1.7 进程当前所在的驱动器 和目录 80 4.1.8 进程的当前目录 81 4.1.9 系统版本 82 4.2 CreateProcess函数 85 4.2.1 pszApplicationName 和pszCommandLine参数 86 4.2.2 psaProcess,psaThread 和bInheritHandles参数 87 4.2.3 fdwCreate参数 89 4.2.4 pvEnvironment参数 91 4.2.5 pszCurDir参数 92 4.2.6 psiStartInfo参数 92 4.2.7 ppiProcInfo参数 98 4.3 终止进程 100 4.3.1 主线程的入口点函数返回 100 4.3.2 ExitProcess函数 101 4.3.3 TerminateProcess函数 102 4.3.4 当进程中的所有线程终止时 103 4.3.5 当进程终止运行时 103 4.4 子进程 104 4.5 管理员以标准用户权限运行时 106 4.5.1 自动提升进程的权限 109 4.5.2 手动提升进程的权限 111 4.5.3 何为当前权限上下文 112 4.5.4 枚举系统中正在运行的 进程 114 4.5.5 Process Information示例 程序 115 第5章 作业 121 5.1 对作业中的进程施加限制 124 5.2 将进程放入作业中 131 5.3 终止作业中的所有线程 132 查询作业统计信息 132 5.4 作业通知 135 5.6 Job Lab示例程序 138 第6章 线程基础 140 6.1 何时创建线程 141 6.2 何时不应该创建线程 143 6.3 编写第一个线程函数 144 6.4 CreateThread函数 144 6.4.1 psa参数 145 6.4.2 cbStackSize参数 145 6.4.3 pfnStartAddr和pvParam 参数 146 6.4.4 dwCreateFlags 147 6.4.5 pdwThreadID 147 6.5 终止运行线程 148 6.5.1 线程函数返回 148 6.5.2 ExitThread函数 148 6.5.3 TerminateThread函数 149 6.5.4 进程终止运行时 149 6.5.5 线程终止运行时 150 6.6 线程内幕 150 6.7 C/C++运行库注意事项 153 6.7.1 用_beginthreadex而不要用 CreateThread创建线程 161 6.7.2 绝对不应该调用的C/C++ 运行库函数 161 6.8 了解自己的身份 162 6.8.1 将伪句柄转换为真正的 句柄 163 第7章 线程调度、优先级和关联性 165 7.1 线程的挂起和恢复 166 7.2 进程的挂起和恢复 167 7.3 睡眠 169 7.4 切换到另一个线程 169 7.5 在超线程CPU上切换到另一个 线程 170 7.6 线程的执行时间 170 7.7 在实际上下文中谈CONTEXT 结构 174 7.8 线程优先级 178 7.9 从抽象角度看优先级 179 7.10 优先级编程 182 7.10.1 动态提升线程优先级 185 7.10.2 为前台进程微调调度程序 186 7.10.3 调度I/O请求优先级 186 7.10.4 Scheduling Lab 示例程序 188 7.11 关联性 192 第8章 用户模式下的线程同步 197 8.1 原子访问:Interlocked系列函数 198 8.2 高速缓存行 203 8.3 高级线程同步 205 需要避免使用的一种方法 205 8.4 关键段 207 8.4.1 关键段:细节 209 8.4.2 关键段和旋转锁 212 8.4.3 关键段和错误处理 213 8.5 Slim读/写锁 214 8.6 条件变量 217 8.6.1 Queue示例程序 218 8.6.2 在停止线程时的死锁问题 225 8.6.3 一些有用的窍门和技巧 227 第9章 用内核对象进行线程同步 230 9.1 等待函数 232 9.2 等待成功所引起的副作用 235 9.3 事件内核对象 236 Handshake示例程序 241 9.4 可等待的计时器内核对象 245 9.4.1 让可等待的计时器添加APC 调用 248 9.4.2 计时器的剩余问题 250 9.5 信号量内核对象 251 9.6 互斥量内核对象 253 9.6.1 遗弃问题 255 9.6.2 互斥量与关键段的比较 256 9.6.3 Queue示例程序 256 9.7 线程同步对象速查表 264 9.8 其他的线程同步函数 265 9.8.1 异步设备I/O 265 9.8.2 WaitForInputIdle函数 265 9.8.3 MsgWaitForMultipleObjects(Ex) 函数 266 9.8.4 WaitForDebugEvent函数 267 9.8.5 SignalObjectAndWait函数 267 9.8.6 使用等待链遍历API来检测 死锁 268 第10章 同步设备I/O与异步设备I/O 275 10.1 打开和关闭设备 276 细看CreateFile函数 278 10.2 使用文件设备 285 10.2.1 取得文件的大小 285 10.2.2 设置文件指针的位置 286 10.2.3 设置文件尾 288 10.3 执行同步设备I/O 289 10.3.1 将数据刷新至设备 289 10.3.2 同步I/O的取消 290 10.4 异步设备I/O基础 291 10.4.1 OVERLAPPED结构 292 10.4.2 异步设备I/O的注意事项 294 10.4.3 取消队列中的设备I/O 请求 296 10.5 接收I/O请求完成通知 296 10.5.1 触发设备内核对象 297 10.5.2 触发事件内核对象 298 10.5.3 可提醒I/O 301 10.5.4 I/O完成端口 306 10.5.5 模拟已完成的I/O请求 316 第11章 Windows线程池 324 11.1 情形1:以异步方式调用函数 325 11.1.1 显式地控制工作项 325 11.1.2 Batch示例程序 327 11.2 情形2:每隔一段时间调用一个 函数 330 Timed Message Box示例程序 332 11.3 情形3:在内核对象触发时调用 一个函数 335 11.4 情形4:在异步I/O请求完成时 调用一个函数 337 11.5 回调函数的终止操作 339 11.5.1 对线程池进行定制 340 11.5.2 得体地销毁线程池: 清理组 342 第12章 纤程 345 使用纤程 345 Counter示例程序 349 第III部分 内存管理 第13章 Windows内存体系结构 355 13.1 进程的虚拟地址空间 355 13.2 虚拟地址空间的分区 356 13.2.1 空指针赋值分区 357 13.2.2 用户模式分区 357 13.3 地址空间中的区域 360 13.4 给区域调拨物理存储器 361 13.5 物理存储器和页交换文件 362 不在页交换文件中维护的物理 存储器 363 13.6 页面保护属性 365 13.6.1 写时复制 366 13.6.2 一些特殊的访问保护属性 标志 367 13.7 实例分析 367 区域内部 372 13.8 数据对齐的重要性 375 第14章 探索虚拟内存 379 14.1 系统信息 379 系统信息示例程序 382 14.2 虚拟内存状态 387 14.3 NUMA机器中的内存管理 388 示例程序:虚拟内存状态 389 14.4 确定地址空间的状态 391 14.4.1 VMQuery函数 392 14.4.2 示例程序:虚拟内存映射 397 第15章 在应用程序中使用虚拟内存 400 15.1 预订地址空间区域 400 15.2 给区域调拨物理存储器 402 15.3 同时预订和调拨物理存储器 403 15.4 何时调拨物理存储器 405 15.5 撤销调拨物理存储器及释放区域 407 15.5.1 何时撤销调拨物理存储器 407 15.5.2 虚拟内存分配示例程序 408 15.6 改变保护属性 414 15.7 重置物理存储器的内容 415 MemReset示例程序 417 15.8 地址窗口扩展 419 AWE示例程序 422 第16章 线程栈 429 16.1 C/C++运行库的栈检查函数 433 16.2 Summation示例程序 435 第17章 内存映射文件 440 17.1 映射到内存的可执行文件和DLL 441 17.1.1 同一个可执行文件或DLL的 多个实例不会共享静态 数据 442 17.1.2 在同一个可执行文件或DLL 的多个实例间共享静态 数据 444 17.1.3 Application Instances示例 程序 449 17.2 映射到内存的数据文件 451 17.2.1 方法1:一个文件,一块 缓存 451 17.2.2 方法2:两个文件,一块 缓存 452 17.2.3 方法3:一个文件,两块 缓存 452 17.2.4 方法4:一个文件,零个 缓存 453 17.3 使用内存映射文件 453 17.3.1 第1步:创建或打开文件 内核对象 454 17.3.2 第2步:创建文件映射 内核对象 455 17.3.3 第3步:将文件的数据映射 到进程的地址空间 458 17.3.4 第4步:从进程的地址空间 撤销对文件数据的映射 461 17.3.5 第5步和第6步:关闭文件 映射对象和文件对象 462 17.6 File Reverse示例程序 463 17.7 用内存映射文件来处理大文件 469 17.8 内存映射文件和一致性 470 17.9 给内存映射文件指定基地址 471 17.10 内存映射文件的实现细节 472 17.11 用内存映射文件在进程间共享 数据 473 17.12 以页交换文件为后备存储器的 内存映射文件 474 Memory-Mapped File Sharing示例 程序 475 17.13 稀疏调拨的内存映射文件 478 Sparse Memory-Mapped File示例 程序 480 第18章 堆 491 18.1 进程的默认堆 491 18.2 为什么要创建额外的堆 492 第19章 ....

2012-10-27

高效的文本去重源码VC

一个高效的文本去重源码。vc编写。很实用的代码。

2012-10-27

VC Skin破解版 加几十款皮肤和一个事例源码

VC Skin破解版 加几十款皮肤和一个事例源码。

2012-10-27

vc HOOKAPI大全(强烈推荐)

HOOKAPI 几个源码事例,很详细 很好的学习资源。由浅入深。从这里起步。

2012-10-27

VC HOOK注册表监控源码

源码分为两部分 1、HOOK 部分 2界面部分。是学习HOOK很好的事例,源码结构清晰 功能全面。

2012-10-27

VC写的一个线程池的管理实例

一个线程池源码,稳定高效。方便调用,适合新手老手使用。

2012-10-27

程序中显示JPG或GIF图像文件示例

程序中显示JPG或GIF图像文件示例.此代码是显示jpg等图片的源码。

2012-10-27

MFC经典教材案例.pdf

MFC经典教材案例 不多说绝对实用 适合新手学习

2010-10-10

空空如也

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

TA关注的人

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