自定义博客皮肤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)
  • 收藏
  • 关注

原创 为类写一个自己的堆

为什么要创建自己的堆呢?有多方面原因:对组件进行保护更有效的内存管理局部访问避免线程同步开销快速释放在C++中,我们用new操作符来分配类对象,用delete操作符来释放它。通过对C++类的new和delete操作符进行重载,我们可以非常容易地将堆函数加以运用。总体来看,不为每一个类创建堆的唯一优势是不会有额外的性能和内存开销。但是这些性能和内存开销并不大,与潜在的回报

2017-01-21 20:33:30 338

原创 用内存映射文件实现进程间通信

使用内存映射文件的一般流程:     由于内存映射文件的一致性,即系统保证在同一文件映射对象的多个视图间保持一致。这可以作为进程通讯的基础,而且在Windows上,同一台机器上共享数据的最底层机制都是内存映射文件。    许多应用程序会在运行过程中创建一些数据,并需要将这些数据传输给其他进程,或与其他进程共享这些数据。如果为了共享数据而必须让应用程序在磁盘上创建数据文件并把数据保存在文

2017-01-21 18:05:04 3986 1

原创 用内存映射文件来处理大文件

1.使用内存映射文件来处理文件的内容,我们先打开文件并向系统预订一块虚拟地址空间区域。接着让系统把文件的第一个字节映射到该区域的第一个字节。然后就可以访问这块虚拟内存区域,就好像它实际包含了文件一样。2.这种方法的最大的优点在于让系统为我们处理所有与缓存有关的操作。我们不必再分配任何内存,把文件中的数据载入内存,把数据写回文件、以及释放内存块。3.而且我们还可以通过只映射文

2017-01-21 16:40:14 756

原创 程序的多个实例间共享数据

程序比较简单,注释也比较详细,不再做过多说明。#include #include //创建一个共享段Shared,一段变量放在单独的段中,//系统不会再在同一个可执行或DLL的每一个实例中为//它们创建新的实例了#pragma data_seg("Shared")unsigned count=0;#pragma data_seg()//告诉链接器共享这个段中的变量#pra

2017-01-21 11:58:47 1524

原创 用命名内核对象判断程序是否有实例正在运行

命名内核对象可以进程之间共享句柄通过让进程每次运行创建一个命名内核对象,判断创建是否成功用GetLastError()获得错误代码,即可判断程序是否有实例正在运行代码页比较简单,不做过多描述,详情参考《windows核心编程》#include #include int main(){ HANDLE hMutex = CreateMutex( NULL, false, "u

2017-01-21 10:58:26 289

原创 如何通过进程名字关闭系统正在运行的进程

STEP ONE终止正在运行的进程,我们用TerminateProcess()函数,函数原型:BOOL TerminateProcess( HANDLE hProcess, // handle to the process UINT uExitCode // exit code for the process);So,在这儿,我们需要获得需要终止的进程的句柄。

2017-01-14 09:03:51 825

原创 ANSI与UNICODE的相互转换

ANSI与UNICODE的相互转换需要用到可格式化字符串函数:*sprintf 和 *sprintf_S注意:1.sprintf和swprintf由于安全性欠佳,已经被sprintf_s和swprintf_s替代。2.上述代码“%S"中的S为大写,这一般是新手的问题所在。

2017-01-11 16:54:30 2993

转载 VS2013使用技巧汇总

1. Peek View在不新建TAB的情况下快速查看、编辑一个函数的代码。以前要看一个函数的实现,需要在使用的地方点击F12跳转到该函数,实际上这是很浪费时间的。VS2013Peek View便解决了这个问题。在光标移至某个函数下,按下alt+F12。用法:在光标移至某个函数下,按下alt+F12。 可以看出在当前页即有当前函数的实现。然后在Pee

2017-01-08 20:28:09 7424

转载 Linux虚拟地址空间布局以及进程栈和线程栈总结

目录(?)[-]一Linux虚拟地址空间布局1 内核空间2 栈stack3 内存映射段mmap4 堆heap5 BSS段 6 数据段Data 7 代码段text 8 保留区二Linux 中的各种栈进程栈 线程栈 内核栈 中断栈Linux 中有几种栈各种栈的内存位置一进程栈二线程栈三进程内核栈四中断栈Linux 为什么需要区分这些栈

2017-01-06 20:41:33 1455

转载 进程地址空间的一点认识

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好了解目前操作系统的内存管理机制。一 早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系

2017-01-06 15:10:46 1047 1

转载 VS调试:dump定位

在系统中异常或者崩溃的时候,来生成dump文件,然后用调试器来调试,可以快速精确定位崩溃的代码行。这样就可以把生产环境中的dmp文件,拷贝到自己的开发机器上,调试就可以找到错误的位置,配合程序调试符号pdb文件,直接可以定位到源代码中位置,真是太神奇了。1.创建dump文件的三种方法:第一种:通过任务管理器:这种适用在程序挂了(crash)的时候进程还未退出,比如我运行程序

2017-01-05 11:15:30 9860

程序员,你伤不起-中文-高清-完整 pdf

描述:https://book.douban.com/subject/24851357/ 程序员,你伤不起-中文-高清-完整 pdf

2018-10-27

Making it Big in Software(远大前程 - 完整引文版 -高清).pdf

描述:https://book.douban.com/subject/7155000/ Making it Big in Software(远大前程 - 完整引文版 -高清).pdf

2018-10-27

软件调试实战 pdf

本书主要讲述C/C++程序的调试和分析,书中的调试技术也可以应用于其他语言编写的程序。本书在讲述简单的源代码分析和测试的基础上,讲述了现实的程序中经常遇到的一些问题(如程序链接、内存访问、并行处理和性能分析)并给出了解决方案。 本书适合软件开发人员、调试人员阅读和使用。 发行时间: 2008年06月

2017-01-03

OPC DA服务器与客户程序开发指南 源码下载

作为工业控制领域的应用技术, OPC 服务器实际上涉及到的领域不仅仅是 COM 接口的实现,还包括如何将实时数据库技术融入 OPC 服务器等。对于本书而言,主要实现了 OPC 服务器的常用接口和 OPC 客户程序。

2016-11-29

空空如也

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

TA关注的人

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