- 博客(101)
- 资源 (1)
- 收藏
- 关注
原创 非常量引用的初始值必须为左值
自己看下面的例子,好好感受一下#include #include #include #include #include #include using namespace std;int foo1();int *foo2();void foo3(int &);void foo4(const int &);int main(){ int a = 5; int &b
2015-03-23 19:32:57 2319
原创 利用FormatMessage函数获取错误描述
#include#include#include using namespace std;BOOL getErrorDescription(DWORD dwMessageId, HLOCAL &hlocal);int main(){ DWORD dwMessageId; while (printf("Please Input MessageId:"), cin >> dwMe
2015-03-18 00:54:16 916
转载 装饰模式与代理模式的区别
转自:http://www.cnblogs.com/jaredlam/archive/2011/11/08/2241089.html学习AOP时,教材上面都说使用的是动态代理,可是在印象中代理模式一直都是控制访问什么的,怎么又动态增加行为了,动态增加行为不是装饰器模式吗?于是 找了很多资料,想弄清楚这两者之间到底有什么区别。结果发现这一篇英文文章讲的很清晰,就翻译一下,供参考。
2015-03-07 08:58:07 565
转载 (翻译)什么是Java的永久代(PermGen)内存泄漏
转自:http://www.codelast.com/本文是我对这篇文章的翻译:What is a PermGen leak? 为了便于阅读,我将原文附于此处,翻译穿插在其中。此外,为了防止原链接在未来某一天失效后,文中的图片再也看不到的问题,我将原文中的图片也保存到了本站的服务器上,我不知道原作者是否允许这样做,但我翻译本文仅在于传播知识的目的,在此向原作者表示深深的感谢:感谢你
2015-03-06 22:48:14 68600
转载 Android 性能优化之使用MAT分析内存泄露问题
转自:http://www.tuicool.com/articles/yaUZ3m我们平常在开发Android应用程序的时候,稍有不慎就有可能产生OOM,虽然JAVA有垃圾回收机,但也不能杜绝内存泄露,内存溢出等问题,随着科技的进步,移动设备的内存也越来越大了,但由于Android设备的参差不齐,可能运行在这台设备好好的,运行在那台设备就报OOM,这些适配问题也是比较蛋疼的,比如我们平
2015-03-06 22:15:33 375
转载 深入理解JVM—JVM内存模型
转自:http://www.cnblogs.com/dingyingsi/p/3760447.html我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,
2015-03-06 22:15:14 397
转载 GC Root
转自:http://blog.csdn.net/time_hunter/article/details/12405127本文参考了周志明的《深入理解Java虚拟机:JVM高级特性与最佳实践》,这本书写的非常好!极力推荐!》JVM中对内存进行回收时,需要判断对象是否仍在使用中,可以通过GC Roots Tracing辨别。定义:通过一系列名为”
2015-03-06 22:12:40 2079
转载 windows-内存映射文件
转自:http://www.cnblogs.com/fangyukuan/archive/2010/09/09/1822216.htmlWindows提供了3种进行内存管理的方法: • 虚拟内存,最适合用来管理大型对象或结构数组。 • 内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行的多个进程之间共享数据。 • 内存堆栈,最适合用来管理大量的小对象。
2015-03-06 21:53:59 576
转载 Linux内存映射文件原理探索
转自:http://blog.csdn.net/mg0832058/article/details/5890688一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。 原理首先,“映射”这个词,就和
2015-03-06 21:50:49 487
转载 C++虚函数和虚继承浅析
转自:http://www.cnblogs.com/xien7/archive/2013/03/12/2954364.html本文针对C++里的虚函数,虚继承表现和原理进行一些简单分析,有不对的地方请指出。下面都是以VC2008编译器对这两种机制内部实现为例。虚函数 一下是百度百科对于虚函数的解释:定义:在某基类中声明为 virtual 并在一个或多个派生类中
2015-03-06 12:35:25 357
转载 结构体字节对齐
转自:http://www.cnblogs.com/dolphin0520/archive/2011/09/17/2179466.html 结构体字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各
2015-03-06 12:33:04 323
转载 C++中const、volatile、mutable的用法
转自:http://blog.csdn.net/wuliming_sc/article/details/3717017const、volatile、mutable的用法const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的
2015-03-06 12:32:07 325
转载 关于C++ const 的全面总结
转自:http://blog.csdn.net/Eric_Jo/article/details/4138548C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。
2015-03-06 12:30:27 320
原创 关于printf参数字节数的研究
#include void main(void){ unsigned int a = 0xFFFFFFF7; unsigned char i = (unsigned char)a; char *b = (char *)&a; printf("%08x,%08x", i, *b);}有一道面试题是这样的,正确的答案是:000000f7,fffffff7我们是这个样子呢,我们来
2015-03-04 20:05:32 716
转载 浮点数的二进制表示
转自:http://www.ruanyifeng.com/blog/2010/06/ieee_floating-point_representation.html作者: 阮一峰日期: 2010年6月 6日1.前几天,我在读一本C语言教材,有一道例题: #include void main(void){ int
2015-03-04 18:14:03 359
转载 C++主要数据类型在计算机中所占字节大小
到了数据存储的大端和小端问题,这你妹的看的一头雾水,发现我基本知识严重匮乏啊,先了解C++各数据类型在自己机子上占多少字节吧,以及这些数据类型所占字节大小与神马有关。各种查资料然后写代码检验,小结于本文中,给自己补补基础知识。先来列一下C++的数据类型:整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,就
2015-03-04 18:04:51 567
原创 printf("%d,%d\n", *ptr, *(++ptr))
#include int main(){ int arr[] = { 6, 7, 8, 9, 10 }; int *ptr = arr; *(ptr++) += 123; printf("%d,%d\n", *ptr, *(++ptr)); return 0;}程序运行结果 : 8,8解释:①*(ptr++) += 123这句代码中,使用了后++所以效果相当于:
2015-03-04 17:59:20 2417
转载 索引的基本概念、分类、优点、使用
转自:http://blog.sina.com.cn/s/blog_6a6eb42d0100kmyz.html一、索引的概念 索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。二、索引的特点 1.索引可
2015-03-04 09:57:30 335
转载 如何在C++中调用C程序?
转自:http://blog.csdn.net/juanjuan888/article/details/6889843C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误。要解决这个问题,就要在 C++文件里面显示声明一下哪些函数是C写的,要用C的方式来处理。1.引用头文件前需要加上 extern “C”,如果引用多个,那么就如
2015-03-04 09:54:06 324
转载 求数组的子数组之和的最大值
int MaxSum2(int *A, int n){ int nStart = A[n-1]; int nAll = A[n-1]; for(int i = n-2;i>=0;--i) { if(nStart<0) nStart = 0; nStart += A[i]; if(nSt
2015-03-04 09:49:52 351
转载 长度为n的整数数组,找出其中任意(n-1)个乘积最大的那一组,只能用乘法,不可 以用除法。要求对算法的时间复杂度和空间复杂度作出分析,可以写思路也可以写程序。
法一:时间空间复杂度都为O(n)s1[i]:从前往后遍历到i位置的乘积(0s2[j]:从后往前遍历到j位置的乘积(0最后遍历一遍找出s1[k+1]*s2[k-1]的最小值(0法二:设这n个数的乘积为P当P=0时,除去n个数中的一个0,计算剩下的数的乘积,记为Q: 当Q=0时,说明n个数中至少有两个0,不管怎么组合,
2015-03-04 09:28:12 3012
转载 T(n) = 25T(n/5)+n^2的时间复杂度
对于T(n) = a*T(n/b)+c*n^k;T(1) = c 这样的递归关系,有这样的结论:if (a > b^k) T(n) = O(n^(logb(a)));logb(a)b为底a的对数if (a = b^k) T(n) = O(n^k*logn);if (a a=25; b = 5 ; k=2a==b^k 故T(n)=O(n^k*logn)=O(n
2015-03-04 08:34:48 700
转载 Android类装载器DexClassLoader的简单使用
转自:http://www.cnblogs.com/dividxiaoshuo-fighting/p/3682398.html?utm_source=tuicool一、装载器简介“类装载器”(ClassLoader),顾名思义,就是用来动态装载class文件的。标准的Java SDK中有个ClassLoader类,借助此类可以装载需要的class文件,前提是
2015-03-04 00:12:34 505
转载 Android中获取应用程序(包)的信息-----PackageManager的使用(一)
转自:http://blog.csdn.net/qinjuning/article/details/6867806 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename、label、icon、占用大小等。具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename、lab
2015-03-04 00:07:29 319
原创 OD+CE查找“植物大战僵尸”太阳数目地址
1.用OD+CE附加游戏,开局,太阳的数目为1502.用CE搜索值为150的地址,搜索到多个3.在游戏里花太阳种一株植物,让太阳数目变化为504.用CE再次搜索值为50的地址,结果只有一个:0x1D9DD7585.用OD给0x1D9DD758下一个内存访问断点,结果断在此处(记得断后删除断点)于是我们可以得到:太阳地址 = [0x1D9D81E0
2015-03-02 23:50:42 5851 2
原创 用OD手动查找窗口过程函数(classProc)
有时候我们用OD查找窗口的classProc地址是不正确的,这时候可以用如下方法手动查找1. 用OD打开被调试程序 打开 插件->API断点设置工具->常用断点设置,把CreateWindow的三个函数勾上,确定 2. 按F9让程序运行并在断点停下,直到在堆栈窗口观察到你要的窗口名字(本文以“计算器”为例)3. 一路F8执行直到回到调用Cre
2015-03-01 12:57:19 7632
转载 利用SPI编写类似sockscap的代理工具
转自:http://blog.csdn.net/ze_tsin/article/details/6376831SPI的出现其实就是微软为了方便程序员对网络API的各种HOOK,从而省去一些麻烦,然而相对的也会增加不少问题。对于SPI中的LSP这种分层的结构,可以很好的使用强盗手法将自己当作老大放在最上层,但是,如果有其他程序也使用同样的手法,那么就会产生冲突了。好吧进入正题。。
2015-02-20 20:18:26 1064
原创 关于VM_COPYDATA的疑惑
当使用VM_COPYDATA在进程之间传递数据时我们会用到一个结构体COPYDATASTRUCT来封装我们要发送的数据然后我们在SendMessage函数的LPARAM参数中传入COPYDATASTRUCT的指针然后我们在接收进程的OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)便能通过pCopyDataStruct
2015-02-20 13:49:11 579
原创 远程注入与卸载DLL
//提升本进程权限BOOL GetPrivilege(){ HANDLE tokenHandle; BOOL bRet = OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &tokenHandle); if (bRet){ TOKEN_PRIVILEGES tokenPri; tokenPri.PrivilegeCo
2015-02-18 19:39:17 543
转载 32位程序与64位程序区别
转自:http://www.cnblogs.com/aHuner/p/3336028.html32位系统由于采用了物理地址扩展技术,使得操作系统可用物理内存能够超过4G,但对于单个程序来说,能够使用的内存(即地址空间)还是只有4G。GCC编译时加上-m32参数。64位的内存容量大大增加,从4G扩展到18PB,可以在内存中存放更多的数据,避免频繁的磁盘读写IO,从而大大提
2015-02-18 00:09:53 2256
转载 MFC教程——鸡啄米
VS2010/MFC编程入门之前言VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)VS2010/MFC编程入门之四(MFC应用程序框架分析)VS2010/MFC编程入门之五(MFC消息映射机制概述)VS2010/MFC编程入门之六(对话框:创建对话框模板和修改
2015-02-17 23:44:19 11437 3
转载 int a; int* a; int** a; int (*a)[10]; int (*a)(int)区别?
转自:http://www.zhihu.com/question/20481976/answer/15249192a) int a;表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个
2015-02-17 21:42:51 447
原创 进程提权
HANDLE tokenHandle;//获得令牌句柄BOOL bRet = OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &tokenHandle);if (bRet){TOKEN_PRIVILEGES tokenPri;tokenPri.PrivilegeCount = 1;//tokenPri.Privileges数组的大小
2015-02-17 19:41:35 1763
转载 pushad和pushfd
转自:http://blog.sina.com.cn/s/blog_af95b18b0101hmx0.htmlpushad: 将所有的32位通用寄存器压入堆栈pusha:将所有的16位通用寄存器压入堆栈pushfd:然后将32位标志寄存器EFLAGS压入堆栈pushf::将的16位标志寄存器EFLAGS压入堆栈popad:将所有的32位通用寄存器取出堆栈
2015-02-17 14:24:51 4354
转载 调用约定
转自:http://blog.csdn.net/zjwoody/article/details/7887988在windows平台上的C++编程中经常会看到一些__stdcall, __cdecl, WINAPI, CALLBACK等等关键字在函数前面,在.NET中还有__clrcall, __thiscall等关键字,有时加不加它们都可以,但是有时必须加上,不然编译不过。本文要讨论的就是这些
2015-02-17 14:23:01 351
转载 代理模式(Proxy)——跟着cc学设计系列
研磨设计模式 之 代理模式(Proxy)1——跟着cc学设计系列 研磨设计模式 之 代理模式(Proxy)2——跟着cc学设计系列 研磨设计模式 之 代理模式(Proxy)3——跟着cc学设计系列
2015-02-14 21:15:30 558
转载 中介者模式(Mediator)——跟着cc学设计系列
研磨设计模式 之 中介者模式(Mediator)1 ——跟着cc学设计系列 研磨设计模式 之 中介者模式(Mediator)2 ——跟着cc学设计系列 研磨设计模式 之 中介者模式(Mediator)3 ——跟着cc学设计系列
2015-02-14 20:57:14 316
转载 原型模式(Prototype)——跟着cc学设计系列
研磨设计模式 之 原型模式(Prototype)1 ——跟着cc学设计系列 研磨设计模式 之 原型模式(Prototype)2 ——跟着cc学设计系列 研磨设计模式 之 原型模式(Prototype)3 ——跟着cc学设计系列
2015-02-14 20:33:55 436
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人