01 2008 档案

Win32下两种用于C++的线程同步类(下)
摘要:我介绍了一种通过封闭Critical Section对象而方便的使用互斥锁的方式,文中所有的例子是两个线程对同一数据一读一写,因此需要让它们在这里互斥,不能同时访问。而在实际情况中可能会有更复杂的情况出现,就是多个线程访问同一数据,一部分是读,一部分是写。我们知道只有读-写或写-写同时进行时可能会出现问题,而读-读则可以同时进行,因为它们不会对数据进行修改,所以也有必要在C++中封装一种方便的允许... 阅读全文

posted @ 2008-01-28 16:50 highmayor 阅读(479) 评论(0) 推荐(0) 编辑

Win32环境下两种用于C++的线程同步类(上)
摘要:线程同步是多线程程序设计的核心内容,它的目的是正确处理多线程并发时的各种问题,例如线程的等待、多个线程访问同一数据时的互斥,防死锁等。Win32提供多种内核对象和手段用于线程同步,如互斥量、信号量、事件、临界区等。所不同的是,互斥量、信号量、事件都是Windows的内核对象,当程序对这些对象进行控制时会自动转换到核心态,而临界区本身不是内核对象,它是工作在用户态的。我们知道从用户态转换到核心态是需... 阅读全文

posted @ 2008-01-28 16:10 highmayor 阅读(334) 评论(0) 推荐(0) 编辑

COM, COM+ and .NET 的区别(转载)
摘要:所有的优秀程序员都会尽自己的最大努力去使自己所写的程序具有更好的可重用性,因为它可以让你快速地写出更加健壮和可升级性的程序。 有两种使代码重用的选择: 1.白盒:最简单的一种,就是把你的程序片拷贝到另一个文件中。 2.黑盒:它包括把编译过的程序片连接起来。因此客户端可以调用的编译过的黑盒类库就叫作组件。 .Net中也同样为开发者提供了类似于COM的建立和展开组件的方法。开... 阅读全文

posted @ 2008-01-23 08:36 highmayor 阅读(328) 评论(0) 推荐(0) 编辑

VC6中使用COM库的三种方法
摘要:本文所用的程序框架均为对话框模式的MFC EXE工程。在编程前,首先要确定待操作的代码组件是否已经在系统中注册。如果代码组件没有注册,可以通过Windows"System目录下的regsvr32. exe程序对其进行注册。 一、使用COM库函数 1.包含COM的头文件和接口定义的.c文件 在头文件中包含了接口的C++定义,在.c文件中说明了接口ID IID和类ID CLSID的符号化常量,例如... 阅读全文

posted @ 2008-01-18 11:29 highmayor 阅读(1497) 评论(0) 推荐(0) 编辑

windows消息列表带解释
摘要:WM_NULL = $0000; WM_CREATE = $0001; 应用程序创建一个窗口 WM_DESTROY = $0002; 一个窗口被销毁 WM_MOVE = $0003; 移动一个窗口 WM_SIZE = $0005; 改变一个窗口的大小 WM_ACTIVATE = $0006; 一个窗口被激活或失去激活状态; WM_SETFOCUS = $0007; 获得焦点后 WM_KILLFOC... 阅读全文

posted @ 2008-01-16 17:40 highmayor 阅读(1320) 评论(0) 推荐(0) 编辑

Windows消息值列表
摘要:#define WM_NULL 0x0000 #define WM_CREATE 0x0001 #define WM_DESTROY 0x0002 #define WM_MOVE 0x0003 #define ... 阅读全文

posted @ 2008-01-16 17:37 highmayor 阅读(2474) 评论(2) 推荐(1) 编辑

std string 的常用使用
摘要:用 string来代替char * 数组,使用sort排序算法来排序,用unique 函数来去重 1、Define string s1 = "hello"; string s2 = "world"; string s3 = s1 + "," + s2 +"!\n"; 2、append s1 += ",shanshan\n"; 3、Co... 阅读全文

posted @ 2008-01-02 12:02 highmayor 阅读(5941) 评论(0) 推荐(0) 编辑

导航