- 博客(13)
- 资源 (22)
- 收藏
- 关注
转载 [转载]预处理器的预定义宏大全
符合ANSI的预定义宏: __DATE__:表示当前源文件编译时的日期,格式为:月/天/年(Mmm dd yyyy)。__FILE__:表示当前正在处理的源文件名称。__LINE__:表示当前正在处理的源文件的行,可以用#line指令修改。__STDC__:表示是ANSI C标准。只有在编译器选项指定了/Za,并且不是编译C++程序时,被定义为常整数1;否则未定义。__TI
2013-11-06 17:23:31
870
原创 c++中的对象大小
sizeof操作符返回操作数的大小,现在我们来单独对class的sizeof操作进行分析。首先,对于空类:class BASE{};对其进行sizeof操作: sizeof(BASE) ==1ps:其实此时的BASE并不是空类,编译器为它生成了3个默认的函数,但不在本文的范畴之内。有些人对这个1的计算很是不解,很多人觉得应该是0,其实我们可以这样考虑,c++对每个类允许
2013-06-16 23:15:20
910
原创 用特化来实现多态--外部多态
项目中一般会遇到成对出现的操作,例如new和delete,malloc和free,或者一切自定义的操作形之如Lock和UnLock的操作。对于new,STL里面有auto_ptr,有时为每个成对操作的对象都实现一个类似于auto_ptr的又显得得不偿失,且有违C++复用的宗旨。下面给的代码是上述问题的一个解决方案:class A{public: void lock()
2013-06-06 22:39:07
941
原创 const限制和引用
class A{public: A() : i(9) { } /*const*/ int i;};int main(int argc,char* argv[]){ A *pa= new A; A &ra = *pa; ra = *pa;//如果A里面有const的成员变量,那么改变ra的引用间接的也代表着该const的成员变量贝改变,
2013-05-30 10:01:30
777
转载 线程同步: mutex, semaphore, condition(ZT)[转载]
信号量(semaphore)和互斥锁(mutex)间的区别:作用域信号量: 进程间或线程间(linux仅线程间)互斥锁: 线程间上锁时信号量: 只要信号量的value大于0,其他线程就可以sem_wait成功,成功后信号量的value减一。若value值不大于0,则sem_wait阻塞,直到sem_post释放后value值加一互斥锁: 只要被锁住,其他任何线程都不
2013-04-25 16:22:15
1695
转载 mutex 和 condition variable[转载]
什么时候mutex不够,还需要condition variable?假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像这样add(){pthread_mutex_
2013-04-25 16:21:10
1142
转载 time_t tm systemtime 互相转换(转)
头文件:time.h 函数原型:time_t time(time_t * timer) 功 能: 获取当前的系统时间,返回的结果是一个time_t类型(即int64类型),其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。可以通过调用loca
2013-02-09 22:19:02
705
转载 常用数据类型转换(转)
在程序开发过程中不断会碰到不同的数据间的转换,在这里做一个总结:一.时间类型间的转换:1.time_t 转 FILETIME FILETIME ft; LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000; ft.dwLowDateTime = (DWORD) ll; ft.dwHighDateTime =
2013-02-09 22:18:06
681
原创 ACE拾遗
反应器Reactor的定时器仅在当前线程中有效,即只有在当前线程中才能有效的为注册的定时器进行event_loop,该实现可能使用了TSS(线程专用存储)(未验证,仅猜测) 2012-05-02 09:50 反应器Reactor可以通过设置对当前线程的权限来解决这个问题。2012-06-05 11:01
2012-05-02 09:50:48
599
原创 自定义绘制进度条, 在指定HDC内的RECT内绘制进度条, 适用于列表控件中插入进度条的应用.
<br />// <br />// 函数名: DrawProgress()<br />// 功能:自定义绘制进度条, 在指定HDC内的RECT内绘制进度条, 适用于列表控件中插入进度条的应用.<br />// 参数:<br />// SourceRect --- 列表控件中的SubItem矩形, (自己画的进度条要小于它一个像素)<br />// hdc --- 列表控件中的hdc<br />// nProgressPercent -- 进度
2010-09-29 22:30:00
1262
原创 VB.NET(VS2005) 使用API的尴尬 (垃圾回收器 FUCK API)
我们知道微软不提倡在VS2005里使用API,甚至取消了以前 VB里的 API文本工具,, 最近由于一个项目的需要,,需要用到一个API : GetLastInputInfo (聪明的你肯定已经知道我要做什么了:)或许还有其他方法,但做人总要追求完美吧~) 正常的代码是: Private Declare Function GetLastInputInfo Lib "user32" (By
2008-05-09 16:52:00
1669
通过EBP EIP来找函数调用堆栈
2011-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人