当前位置: 首页 > news >正文

windows C++ 虚拟内存的按需调拨

虚拟内存的按需调拨

windows C++ 虚拟内存的按需调拨

文章目录

  • 虚拟内存的按需调拨
  • 虚拟内存的按需调拨


虚拟内存的按需调拨

/*------------------------------------------------------------------------24-SEHAndMemory.cpp演示虚拟内存的按需调拨-----------------------------------------------------------------------*/
#include <windows.h>
#include <tchar.h>
#include <locale.h>#define PAGELIMIT 80
LPBYTE lpNxtPage;
DWORD dwPages = 0;
DWORD dwPageSize;//页面大小,一般为4KBINT PageFualtExceptionFilter(DWORD dwCode) {LPVOID lpvResult;//不是非法访问内存if (dwCode != EXCEPTION_ACCESS_VIOLATION) {//线程试图读写一个虚拟内存地址,但在这个地址它并不具备相应权限return EXCEPTION_EXECUTE_HANDLER;//执行except块的异常处理程序代码}//当超过指定的页面数时if (dwPages >= PAGELIMIT) {return EXCEPTION_EXECUTE_HANDLER;//执行except块的异常处理程序代码}//非法访问内存,则为预订的空间提交下一页物理存储器lpvResult = VirtualAlloc((LPVOID)lpNxtPage, dwPageSize, MEM_COMMIT, PAGE_READWRITE);if (lpvResult == NULL) {return EXCEPTION_EXECUTE_HANDLER;//执行except块的异常处理程序代码}//提交成功dwPages++;lpNxtPage += dwPageSize;_tprintf(_T("第%d页提交成功!\n"), dwPages);return EXCEPTION_CONTINUE_EXECUTION; //重新执行触发异常的那条CPU指令
}int main() {_tsetlocale(LC_ALL, _T("chs"));LPVOID lpvBase; LPTSTR lpPtr; BOOL bSuccess;SYSTEM_INFO sSysInfo;GetSystemInfo(&sSysInfo);dwPageSize = sSysInfo.dwPageSize;_tprintf(_T("CPU页面大小为%dKB.\n"), sSysInfo.dwPageSize / 1024);//预订存储器lpvBase = VirtualAlloc(NULL, PAGELIMIT*dwPageSize, MEM_RESERVE, PAGE_NOACCESS);lpPtr = (LPTSTR)(lpNxtPage = (LPBYTE)lpvBase);for (DWORD i = 0; i < PAGELIMIT*dwPageSize / sizeof(TCHAR); i++) {__try {lpPtr[i] = _T('a');//写入一个字节的数据}__except (PageFualtExceptionFilter(GetExceptionCode())) {_tprintf(_T("异常被处理\n"));//ExitProcess(GetLastError());}}bSuccess = VirtualFree(lpvBase, 0, MEM_RELEASE);_tprintf(_T("释放操作%s.\n"), bSuccess ? _T("成功") : _T("失败"));_tsystem(_T("PAUSE"));return 0;
}

相关文章:

windows C++ 虚拟内存的按需调拨

虚拟内存的按需调拨 windows C 虚拟内存的按需调拨 文章目录 虚拟内存的按需调拨虚拟内存的按需调拨 虚拟内存的按需调拨 /*------------------------------------------------------------------------24-SEHAndMemory.cpp演示虚拟内存的按需调拨--------------------------…...

[杂项]pugi::xml获取xml中的注释节点

前言 想到学习xml时的一句话&#xff0c;xml中注释也会被算作一个节点。那么我们就可以通过 pugixml 把注释节点获取出来&#xff0c; <?xml version"1.0"?> <mesh name"mesh_root"><!--这是一个注释节点-->some text<![CDATA[so…...

Spring Boot Admin集成与自定义监控告警

目录 一.Spring Boot Admin集成 1.引入依赖 2.添加配置 3.监控界面 二.Spring Boot Admin告警机制 1. 基本告警机制 2. 配置告警 2.1 triggers触发器讲解 3. 自定义通知 3.1 Instance 对象 三.Spring Boot Admin支持的监控属性 1.常见的Spring Boot Admin监控属性 …...

如何恢复回收站中已删除/清空的文件

回收站清空后如何恢复已删除的文件&#xff1f;是否可以恢复永久删除的文件&#xff1f;或者最糟糕的是&#xff0c;如果文件直接被删除怎么办&#xff1f;本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件&#xff1f; “回收站清空后…...

玩短视频素材都是在哪里找的?推荐几个热门的短视频素材下载渠道

亲爱的短视频创作爱好者们&#xff0c;你是否在寻找视频素材时感到苦恼&#xff0c;觉得选择有限&#xff1f;别担心&#xff0c;今天我要为大家介绍几个超级实用的视频素材下载平台&#xff0c;帮助你的视频创作事半功倍&#xff01; 蛙学网 我们首先要重点推荐的是蛙学网&am…...

ThinkPHP5 5.0.23-rce远程代码执行漏洞复现

启动环境&#xff0c;先关闭其他环境 启动 判断是否存在漏洞&#xff1a;访问/index.php?scaptcha页面&#xff0c;会出现报错 使用HackBar 插件发送 POST 请求 _method__construct&filter[]system&methodget&server[REQUEST_METHOD]dir 通过echo命令写入 Webshe…...

windows下安装并使用nvm

目录 一.准备工作&#xff1a;卸载node 卸载步骤 二.下载nvm 三.安装nvm 三.配置下载源【重要】 四.使用nvm安装node.js 五.nvm常用命令 六.卸载nvm 一.准备工作&#xff1a;卸载node 如果电脑上已经有node&#xff0c;那么我们需要先完全卸载node&#xff0c;再安装…...

mac m2 安装 nvm

踩坑-填坑 过程 红字都是 启动台-ohter-终端 里面直接输入就行了 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" brew -v 重启终端 brew uninstall nvm brew install nvm 成功提示 > Summary &#x1f37a; /o…...

通信工程学习:什么是AN接入网络

AN接入网络 AN接入网络&#xff0c;全称Access Network&#xff0c;是电信部门业务节点与用户终端设备之间的实施系统。它可以部分或全部代替传统的用户本地线路网&#xff0c;并可包括复用、交叉连接和传输功能。以下是关于AN接入网络的详细解释&#xff1a; 一、AN接入网络的…...

MSCKF7讲:特征管理与优化

MSCKF7讲&#xff1a;特征管理与优化 文章目录 MSCKF7讲&#xff1a;特征管理与优化1 Feature.h2 OptimizationConfig3 initializePosition三角化LM优化3.1 计算归一化坐标深度初值generateInitialGuess① 理论推导② 代码分析 3.2 计算归一化误差cost① 理论推导② 代码分析 3…...

C# XML 使用教程

C# XML 使用教程 目录 C# XML 使用教程XML 是什么介绍组成XML 与 HTML 的区别 C# 中如何使用 XML序列化根元素子元素序列化方法 反序列化反序列化方法 序列化与反序列化实例 XML 是什么 介绍 可扩展标记语言 (Extensible Markup Language, XML) &#xff0c;标准通用标记语言的…...

淘宝开放平台交易类API解析以及如何测试?

调用淘宝开放平台的订单接口&#xff0c;主要可以通过以下几种途径进行&#xff1a; 1. 直接使用淘宝开放平台提供的API接口 步骤概述&#xff1a; 注册淘宝开放平台账号&#xff1a;首先&#xff0c;你需要在淘宝开放平台注册一个开发者账号。创建应用&#xff1a;在注册并…...

基于聚类与LSTM对比特币价格深度分析与预测

1.项目背景 比特币作为全球最具影响力的加密货币之一&#xff0c;其价格受到多种复杂因素的共同作用&#xff0c;包括市场情绪、政策变化、大型机构的投资行为等&#xff0c;这些因素在不同的市场阶段对比特币价格波动产生直接或间接的影响。通过对比特币市场的深入分析&#…...

YOLOv9改进策略【Neck】| 使用CARAFE轻量级通用上采样算子

一、本文介绍 本文记录的是利用CARAFE上采样对YOLOv9的颈部网络进行改进的方法研究。YOLOv9采用传统的最近邻插值的方法&#xff0c;仅考虑子像素邻域&#xff0c;无法捕获密集预测任务所需的丰富语义信息&#xff0c;从而影响模型在密集预测任务中的性能。CARAFE通过在大感受…...

SpringMVC上

SpringMVC介绍 MVC模型 MVC全称Model View Controller&#xff0c;是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分&#xff1a; Model&#xff08;模型&#xff09;&#xff1a;指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用…...

嵌入式软件--51单片机 DAY 2

一、数码管 1.数码管概况 2.设计 &#xff08;1&#xff09;硬件设计 我们可以通过阴极控制显示的位置&#xff0c;通过阳极控制显示的内容。两个数码管共有8个阴极引脚和16个阳极引脚&#xff0c;如果所有引脚都直接接入MCU&#xff0c;会造成MCU引脚的极大浪费。 为了节省…...

高精度加法,减法,乘法,除法

加法&#xff1a; 大整数该如何储存&#xff1f; 用数组储存&#xff1a; 把个位放在数下标为0的位置&#xff0c;十位放在数组下标为1的位置&#xff08;也就是高位放在数组的后面&#xff09; 因为这样&#xff0c;如果需要增加一位最高位&#xff0c;那我们就可以直接在…...

学习计划(大三上)

第二周 总结Java并发编程的艺术 学习JVM&#xff08;博客文章&#xff09; 第三周 学习JVM&#xff08;博客文章&#xff09; 图解TCP/IP 4章 第四周 完成简历项目 学习JVM&#xff08;博客文章&#xff09; 图解TCP/IP 4章 第五周 完成简历项目 深入学习RocketMQ底层…...

【第0006页 · 数组】寻找重复数

【前言】本文以及之后的一些题解都会陆续整理到目录中&#xff0c;若想了解全部题解整理&#xff0c;请看这里&#xff1a; 第0006页 寻找重复数 今天想讨论的一道题在 LeetCode 上评论也是颇为“不错”。有一说一&#xff0c;是道好题&#xff0c;不过我们还是得先理解了它才…...

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——10.继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层…...

HHEML:基于FPGA硬件加速的边缘隐私保护机器学习框架

1. 项目概述&#xff1a;当边缘计算遇上隐私保护&#xff0c;一场硬件加速的革新在医疗影像分析、智能门禁、工业质检这些场景里&#xff0c;你肯定不希望自己的X光片、人脸数据或者生产线上的瑕疵图片&#xff0c;在传到云端服务器做AI推理时&#xff0c;被“有心人”看个精光…...

特征函数损失:频域视角解决机器学习分布偏移问题

1. 项目概述在机器学习项目的实际落地过程中&#xff0c;我们常常会遇到一个令人头疼的“幽灵”&#xff1a;模型在精心准备的训练集上表现优异&#xff0c;但一到真实的生产环境&#xff0c;性能就出现断崖式下跌。这个幽灵就是“分布偏移”。无论是计算机视觉、自然语言处理还…...

量子机器学习预测误差:从T/N线性关系到紧致界理论突破

1. 量子机器学习预测误差&#xff1a;从理论到实践的深度解析在量子机器学习这个前沿交叉领域&#xff0c;我们常常面临一个核心挑战&#xff1a;如何评估一个在有限数据上训练出的量子模型&#xff0c;面对全新未知数据时的真实表现&#xff1f;这不仅是理论研究者关心的课题&…...

ARM SME指令集与MOVA指令详解:矩阵运算优化

1. ARM SME指令集概述在当今计算密集型应用如机器学习、信号处理和科学计算的推动下&#xff0c;现代处理器架构不断扩展其并行计算能力。ARMv9架构引入的SME&#xff08;Scalable Matrix Extension&#xff09;正是这种演进的典型代表&#xff0c;它为矩阵和向量操作提供了硬件…...

AI给组内同事的脚本能力价值打了1折!

以前一个做了七八年前端设计的工程师&#xff0c;遇到一个简单的VCD波形解析需求&#xff0c;第一反应可能是是找工具组的人或者脚本能力强的人帮忙。这个场景挺普遍的&#xff0c;只是大家都不太好意思说出来。现在有个概念叫 Vibe Coding&#xff0c;核心是借助AI工具&#x…...

仿真数据与真实数据:机器人训练的数据策略选择

仿真数据与真实数据&#xff1a;机器人训练的数据策略选择摘要&#xff1a;仿真数据和真实数据各有优劣&#xff0c;如何选择和配比直接影响训练效果和项目成本。本文从数据特性、适用场景、配比策略三个维度给出系统分析&#xff0c;并提供Sim-to-Real迁移的工程化方案。关键词…...

融合UFF与机器学习势:高通量筛选MOF吸附剂的高效精准方案

1. 项目概述&#xff1a;当经典力场遇上机器学习势&#xff0c;如何实现MOF吸附剂的精准高效筛选&#xff1f;在材料研发的前沿&#xff0c;尤其是像金属-有机框架&#xff08;MOFs&#xff09;这样拥有近乎无限结构可能性的领域&#xff0c;我们常常面临一个“大海捞针”的困境…...

2026年5月儿童护眼灯品牌推荐:TOP5排名书桌防蓝光评测

摘要 当儿童近视率持续攀升&#xff0c;家长在选购护眼灯时面临从“照亮”到“护眼”的认知升级&#xff0c;如何在琳琅满目的品牌中锁定真正科学有效的方案成为核心焦虑。根据世界卫生组织最新数据&#xff0c;全球儿童近视患病率预计在2050年将达到50%&#xff0c;而照明环境…...

LLM应用开发之向量数据库详解

摘要随着大语言模型&#xff08;LLM&#xff09;应用的快速发展&#xff0c;向量数据库作为AI时代的关键基础设施&#xff0c;正在成为RAG&#xff08;检索增强生成&#xff09;、语义搜索、智能推荐等场景的核心组件。本文将从向量嵌入的原理出发&#xff0c;深入讲解向量相似…...

TT100K数据集类别不平衡?手把手教你用Python筛选并重划分(保留45类实战)

TT100K数据集类别不平衡解决方案&#xff1a;Python实战指南当你第一次打开TT100K数据集时&#xff0c;可能会被其庞大的图片数量震撼——train文件夹6105张&#xff0c;test文件夹3071张&#xff0c;other文件夹更是多达7641张。但兴奋过后&#xff0c;细看类别分布&#xff0…...