导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等....
分类:
编程语言 时间:
2015-04-23 17:05:26
阅读次数:
192
函数原型:BOOL IsBadReadPtr(CONST VOID *lp,UINT_PTR ucb);参数:lp 表示要检查的内存指针ucb 要检查的内存块的大小返回:如果调用进程有权限访问该内存,返回0否则,返回非0说明:该函数检查调用进程是否有读取指定内存的内容的权限,微软提供的32位操作系统...
分类:
其他好文 时间:
2015-04-23 15:01:47
阅读次数:
124
1.9 再论shared_ptr 的线程安全虽然我们借shared_ptr 来实现线程安全的对象释放,但是shared_ptr 本身不是100% 线程安全的。它的引用计数本身是安全且无锁的,但对象的读写则不是,因为shared_ptr 有两个数据成员,读写操作不能原子化。根据文档11,shared_...
分类:
编程语言 时间:
2015-04-22 19:58:04
阅读次数:
137
用GDI+的优秀图形输出功能可以非常方便的实现文字特效,其中一个带阴影的文字便是其中一例。
许多简单的文字特效只是简单的将文字用不同的颜色与不同的位置输出一次或多次,本文所讨论的阴影效果借助GDI+的反走样能力生成透明的阴影与半阴影。 这儿所述的方法先在绘图平面上绘制一个比预期小的文字,然后放大它。
由于代码注释很详细,直接上代码:
ULONG_PTR g_gdiP...
分类:
编程语言 时间:
2015-04-20 22:48:03
阅读次数:
349
1.C语言的函数malloc和free(1)函数malloc和free在头文件中的原型及参数 void * malloc(size_t size)动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL。void free(void *ptr)释放动态申请的内存空间,调用f.....
分类:
编程语言 时间:
2015-04-20 12:35:53
阅读次数:
160
在应用程序类实例化方法中C***App::InitInstance()注释掉下面这段//Ctest3Dlg dlg;//m_pMainWnd = &dlg;//INT_PTR nResponse = dlg.DoModal();//if (nResponse == IDOK)//{//// TODO...
分类:
编程语言 时间:
2015-04-16 14:13:06
阅读次数:
154
一:内核基础层数据结构
1:双向链表list
a):链表的定义struct list_head{
struct list_head *next,*pre;
}b):container对象和list_entry#define container_of(ptr,type,member){ const typeof(((type *)0->member) *_mptr = (...
分类:
系统相关 时间:
2015-04-16 12:28:29
阅读次数:
238
Ptr=NULL; //NULL在文件stdio.h中定义过。 Ptr=(unsigned int *)malloc(N*sizeof(int)); //注意一定是要开辟N个int型的字节长度,不然编译会出错。 //printf("%ld\n",Ptr); for(i=0;i { *(Pt...
分类:
其他好文 时间:
2015-04-16 01:30:25
阅读次数:
262
shared_ptr:计数的智能指针它是一个包装了new操作符在堆上分配的动态对象,但它实现的是引用计数型的智能指针 ,可以被自由地拷贝和赋值,在任意的地方共享它,当没有代码使用(引用计数为0)它时才删除被包装的动态分配的对象。shared_ptr也可以安全地放到标准容器中,并弥补了auto_ptr...
分类:
其他好文 时间:
2015-04-15 23:19:53
阅读次数:
161
http://blog.csdn.net/rogeryi/article/details/1442700Part(1)这篇文章试图说明如何使用auto_ptr和shared_ptr,从而使得动态分配对象的使用和管理更安全,方便。除了一般的使用说明外,更主要是说明它们之间的异同 —— 满足需求的不同和...
分类:
其他好文 时间:
2015-04-14 19:35:58
阅读次数:
140