自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

benny5609的专栏

人生,到世上走一遭,只不过是单纯的体验与学习认识,当我们在临死的时候,可以光荣地对自己说:"我已领略过"便不枉此生。

  • 博客(137)
  • 收藏
  • 关注

原创 Boost库安装配置

下载 1 Boost库通过SourceForge文件发布系统来发布。点击这里从SourceForge下载发布版本。并把它解压倒一个合适的地方。 网站上的Boo

2008-03-31 18:37:00 1216

原创 boost库的使用过程

1.从网上下载(sourceforge.net)boost库(版本boost_1_34_1) 2.运行/boost_1_34_1/tools/jam/src目录下的build.bat批处理文件,将新生成在/boost_1_34_1/tools/jam/src/bin.ntx86目录下的bjam.exe文件拷贝到boost的根目录下(该目录下有boost-build.jam文件) 3.从

2008-03-31 17:58:00 1245

原创 例解 autoconf 和 automake 生成 Makefile 文件

2006 年 9 月 21 日本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我

2008-03-31 15:56:00 642

原创 使用AutoMake轻松生成Makefile

摘要: 在 Unix 上写过程序的人一般都遇到过 Makefile,尤其是用 C 来开发程序的人。用 make 来开发和编译程序的确很方便,可是要写出一个MakeFile就不那么简单了。偏偏介紹 Makefile 的文件不多,GNU Make

2008-03-31 15:55:00 666

原创 强烈推荐使用五笔加加输入法

五笔加加输入法是世界是最好用的五笔输入法。全球最好用的五笔输入法是五笔加加输入法。“它有如下极为特殊的方便使用之处:①中英文切换,直接按左CTRL键或输入;+相应的英文+回车。②重码选择可根据需要习惯自己设置。如用shift或;‘进行选择。③不会输入的汉字可用拼音输入,并提供五笔编码。如输入“养”(z+yang),即可用在z后加拼音输入,此时提供此汉字的五笔编码。这点对于初学五笔输入法

2008-03-28 11:56:00 4394

原创 线程同步机制的区别与比较及进程通信方法

线程同步机制的区别与比较及进程通信方法   有关多线程的一些技术问题:1、  何时使用多线程?2、  线程如何同步?3、  线程之间如何通讯?4、  进程之间如何通讯?先来回答第一个问题,线程实际主要应用于四个主要领域,当然各个领域之间不是绝对孤立的,他们有可能是重叠的,但是每个程序应该都可以归于某个领域:1、  offloading time-consuming task。由辅助线程来执行耗

2008-03-28 11:21:00 874

原创 Windows程序程序设计---线程同步2

3.2.5 互斥内核对象互斥(Mutex)是一种用途非常广泛的内核对象。能够保证多个线程对同一共享资源的互斥访问。同临界区有些类似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。与其他几种内核对象不同,互斥对象在操作系统中拥有

2008-03-28 11:19:00 758

原创 Windows程序程序设计---线程同步1

3.2 线程同步同步可以保证在一个时间内只有一个线程对某个共享资源有控制权。共享资源包括全局变量、公共数据成员或者句柄等。临界区内核对象和事件内核对象可以很好地用于多线程同步和它们之间的通信。本节将结合各种简单的例子来讨论产生同步问题的根本原因,进而提出相应的解决方案。3.2.1 临界区对象1.为什么要线程同步当多个线程在同一个进程中执行时,可能有不止一个线程同时执行同一段代码,访

2008-03-28 11:18:00 862

原创 Windows程序设计---多线程2

4.退出代码Exit Code成员Exit Code指定了线程的退出代码,也可以说是线程函数的返回值。在线程运行期间,线程函数还没有返回,Exit Code的值是STILL_ACTIVE。线程运行结束后,系统自动将ExitCode设为线程函数的返回值。可以用GetExitCodeThread函数得到线程的退出代码。         ……         DWORD dwExitCode

2008-03-28 11:16:00 1040

原创 Windows程序设计---多线程1

应用程序被装载到内存之后就形成了进程,这是上一章重点讨论的话题。但是程序在内存中是如何执行的呢?这就涉及到了代码的执行单元——线程。本章就线程的创建、多线程处理展开介绍。本章首先介绍创建线程的方法和线程内核对象,接着详细分析产生线程同步问题的根本原因,并提出一些解决办法。为了扩展多线程的应用和为读者提供更多的实际机会,本章还重点讨论了线程局部存储和CWinThread类的设计,这也是设计框架程

2008-03-28 11:15:00 1192

原创 线程局部存储

线程局部存储

2008-03-28 11:14:00 622

原创 va_list、va_start、va_arg、va_end宏的使用(转)

当你的函数的参数个数不确定时,就可以使用上述宏进行动态处理,这无疑为你的程序增加了灵活性。Example:CString AppendString(CString str1,...)//一个连接字符串的函数,参数个数可以动态变化{      LPCTSTR str=str1;//str需为指针类型,因为va_arg宏返回的是你的参数的指针,但是如果你的参数为int等简           

2008-03-28 11:13:00 1019

原创 C++网络开发包ACE环境的配置与调试

ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。我的系统环境是:Win2k pro(sp4)、VC6.0 (sp5)过一阵,我的主页上要开论坛,并设VC专区,欢迎大家上去交流htt

2008-03-28 11:06:00 1318

原创 ACE的安装

ACE的安装是一件比较麻烦的事情,这里简单的记录了我在VS2005下安装ACE的过程,希望能给大家一个参考。 安装环境: 操作系统:Windows XP 专业版 编译环境:VS2005中文版 ACE版本:ACE-5.5.1 安装过程:

2008-03-28 11:05:00 1085

原创 使用ACE进行网络编程

ACE将网络编程进行了模式化,以便你不必每次都重复相同的代码。 网络编程需要处理的事情多括中断,并发,多线程等,程序格式相对固定,但是健壮的网络程序则相对复杂。为了处理这些情形,ACE内建了几个网络编程的模式。 最基本的模式当然是直接使用sock进行单客户单服务器单线程的一对一模型,这种模式相对简单,也和ACE关系不大,但是这样编写的程序不能处理并发的情况,可用性很差或者说基本不具有可用性

2008-03-28 11:04:00 1188

原创 ACE源代码目录结构

ACE(ADAPTIVE Communication Environment),中文的意思就是自适配通讯环境,ACE是一个用于开发网络程序的优秀的C++的框架,在国外有很广泛的使用,在国内一些大的开发通讯产品的公司也有使用。我接触ACE也有一段时间了,虽然时间不长,但我还是感觉到ACE确实是一个好东西,对于丰富自己的知识面有很大的帮助。虽然我们项目目前是采用C语言来开发,但是当接触ACE后,你

2008-03-28 11:03:00 3259

原创 ACE简介

导读:   (转载自中国互动出版网,http://www.china-pub.com/computers/emook/1111/info.htm)   文章摘要:   ADAPTIVE Communication Environment (ACE) 是一种免费开放原代码的面向对象框架结构,该结构实现了许多并行通信软件的核心设计模式. ACE提供丰富的C++ wrapper facades, 以及可

2008-03-28 11:02:00 1412 1

原创 C++资源之不完全导引 [下]

C++资源之不完全导引 [下] 撰文/ 曾毅 陶文最后更新:2004年6月12日 声明: .本文2004年5月首发于《CSDN开发高手》,版权归该杂志与《程序员》杂志社所有。杂志限于篇幅部分内容有所删节,此处版本为相对完整版本。 .本文为介绍性文

2008-03-28 10:47:00 770

原创 C++资源之不完全导引 [上]

C++资源之不完全导引 [上] 撰文/ 曾毅陶文 最后更新:2004年6月11日  声明: .本文2004年5月首发于《CSDN开发高手》,版权归该杂志与《程序员》杂志社所有。杂志限于篇幅部分内容有所删节,此处版本为相对完整版本。 .本文

2008-03-28 10:46:00 614

原创 vc6能用的SDK和库列表

vc6能用的SDK和库列表 vc6快10岁了,呵呵~~蛮经典的东西。 以下SDK和库是我自己收集的,绝大部分我都使用过,最重要的是能在VC6下使用。它们之间各自有各自的功能,不需要比较,除非是相同类型的库,例如 XML解析器,我才比较一下,排名也不分先后,并且描述的简略不代表个人的感情色情。^.V,很多库我都喜欢,但我只是简单说两句。例如MFC,STL, ICE等等。希望大家的开发效率能提高不

2008-03-28 10:44:00 761

原创 Learning WTL8.0 Part-1 Win32 vs. ATL Windows Programming

学习WTL可以有多种方式,当然如果有COM和ATL的知识背景最好不过,如果你有MFC编程背景却最为糟糕,除非你对MFC无所不知、无所不能(如果你不是MFC的ORACLE,那么最好忘却它)   Learning WTL8.0 Part-1 Learning WTL8.0 Part-1 Win32 vs. ATL Windows Programming

2008-03-26 19:28:00 1236

原创 深入剖析WTL—WTL框架窗口分析 (6)

WTL对框架窗口的封装ATL仅仅是封装了窗口函数和提供了消息映射。实际应用中,需要各种种类的窗口,比如,每个界面线程所对应的框架窗口。WTL正是在ATL基础上,为我们提供了框架窗口和其他各种窗口。 所有的应用程序类型中,每个界面线程都有一个框架窗口(Frame)和一个视(View)。它们的概念和MFC中的一样。 图示是WTL的窗口类的继承图。 WTL框架窗口为我们提供了: 一个应用程序的标题,窗口

2008-03-26 14:47:00 873 1

原创 深入剖析WTL—WTL框架窗口分析 (5)

ATL对窗口消息处理函数的封装 在本节开始部分谈到的封装窗口的两个难题,其中第一个问题是怎样解决将窗口函数的消息转发到HWND相对应的类的实例中的相应函数。 下面我们来看一下,ATL采用的是什么办法来实现的。 我们知道每个Windows的窗口类都有一个窗口函数。 LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

2008-03-26 14:37:00 917

原创 深入剖析WTL—WTL框架窗口分析 (4)

superclass superclass是一种生成新的窗口类的方法。它的中心思想是依靠现有的窗口类,克隆出另一个窗口类。被克隆的类可以是Windows预定义的窗口类,这些预定义的窗口类有按钮或下拉框控制等等。也可以是一般的类。克隆的窗口类使用被克隆的类(基类)的窗口消息处理函数。 克隆类可以有自己的窗口消息处理函数,也可以使用基类的窗口处理函数。 需要注意的是,superclass是在注册窗口类

2008-03-26 14:36:00 854

原创 深入剖析WTL—WTL框架窗口分析 (3)

在上面的例子中,CDerived从CBase中派生出来。CDerived类通过定义一个WM_LBUTTONDOWN消息处理函数来改变CBase类代表的窗口的功能。 这样,CBase类的消息映射定义了一个ProcessWindowMessage()函数,而CDerived类的消息映射也定义了一个ProcessWindowMessage()函数。 那么,我们在窗口处理函数逻辑中怎样把这两个类的Proc

2008-03-26 14:35:00 866

原创 深入剖析WTL—WTL框架窗口分析 (2)

ATL的消息处理宏消息映射的目的是实现ProcessWindowMessage()。ProcessWindowMessage()函数是窗口函数的关键逻辑。 一共有三种消息处理宏,分别对应三类窗口消息——普通窗口消息(如WM_CREATE),命令消息(WM_COMMANS)和通知消息(WM_NOTIFY)。 消息处理宏的目的是将消息和相应的处理函数(该窗口的成员函数)联系起来。 · 普通消息处理宏

2008-03-26 14:31:00 769

原创 深入剖析WTL—WTL框架窗口分析 (1)

WTL的基础是ATL。WTL的框架窗口是ATL窗口类的继承。因此,先介绍一下ATL对Windows窗口的封装。 由第一部分介绍的Windows应用程序可以知道创建窗口和窗口工作的逻辑是: 1 注册一个窗口类 2 创建该类窗口 3 显示和激活该窗口 4 窗口的消息处理逻辑在窗口函数中。该函数在注册窗口类时指定。 从上面的逻辑可以看出,要封装窗口主要需解决怎样封装窗口消息处理机制。 对于窗口消息处理机

2008-03-26 14:30:00 761

原创 PE文件格式详解(下)

作者:MSDN译者:李马 (http://home.nuc.edu.cn/~titilima)预定义段    一个Windows NT的应用程序典型地拥有9个预定义段,它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug。一些应用程序不需要所有的这些段,同样还有一些应用程序为了自己特殊的需要而定义了更多的段。这种做法与MS-D

2008-03-26 14:02:00 551

原创 PE文件格式详解(上)

作者:MSDN译者:李马 (http://home.nuc.edu.cn/~titilima) 摘要    Windows NT 3.1引入了一种名为PE文件格式的新可执行文件格式。PE文件格式的规范包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications),但是它非常之晦涩。

2008-03-26 14:01:00 646

原创 volatile——多线程程序员最好的朋友volatile

泛型:volatile——多线程程序员最好的朋友volatile修正符及让你的编译器为你检查竞态条件(race conditions)Andrei Alexandrescu 我不想破坏你的情绪,但这篇专栏针对多线程编程中最可怕的问题。如果说——正如前面一篇泛型所说的——写出意外安全(exception-safe)的程序很难,但写意外安全的程序和多线程编程比起来就是小孩子的玩意。 用到多线程的程

2008-03-26 13:46:00 867

原创 华为编程规范和范例

1 排版¹1-1:程序块要采用缩进风格编写,缩进的空格数为4 个。说明:对于由开发工具自动生成的代码可以有不一致。¹1-2:相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_d

2008-03-26 13:22:00 1026 1

原创 ATL3.0中的窗口类

原文出处: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/atlwindow.asp摘要:讨论Active Template Library (ATL) 3.0中的一些类,这些类围绕着Windows API建立了一个面向对象的编程框架,使用这个框架,可以简化Microsoft® Wi

2008-03-26 10:53:00 1027

原创 c++中__declspec用法总结

P.P 的 [原创]c++中__declspec用法总结1. __declspec(align(16)) struct SS{ int a,b; }; 它与#pragma pack()是一对兄弟,前者规定了对齐的最小值,后者规定了对齐的最大值。同时出现时,前者优先级高。 __declspec(align())的一个特点是,它仅仅规定了数据对齐的位置,而没有规定数据实际占用的内存长度,当指定的数

2008-03-25 17:33:00 1343

原创 pragma指令简介

pragma指令简介 在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数。 message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就

2008-03-25 17:25:00 754

原创 C++堆、栈、自由存储区、全局/静态存储区和常量存储区

一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在

2008-03-25 17:24:00 9630 2

原创 STATIC_CAST 和 REINTERPRET_CAST

STATIC_CAST 和 REINTERPRET_CAST2008年03月13日 星期四 14:30 reinterpret_cast是C++里的强制类型转换符。操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。例如:int *n= new

2008-03-25 10:56:00 788

原创 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast

C 风格(C-style)强制转型如下:(T) exdivssion // cast exdivssion to be of type T函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式

2008-03-25 10:55:00 531

原创 ATL的GUI程序设计(4)

第四章 对话框和控件对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——对话框(Dialog Box)。我们可以在VC IDE的资源设计器中设计对话框资源,并在其上放置各种控件资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作对话框,以及如何操作对话框上的各种控件。题外话先ATL

2008-03-24 19:40:00 843

原创 ATL的GUI程序设计(4)

第四章 对话框和控件对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——对话框(Dialog Box)。我们可以在VC IDE的资源设计器中设计对话框资源,并在其上放置各种控件资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作对话框,以及如何操作对话框上的各种控件。题外话先ATL

2008-03-24 19:31:00 1238

原创 ATL的GUI程序设计(3)

第三章 ATL的窗口类CWindowImpl、CWindow、CWinTraits,ATL窗口类的奥秘尽在此三者之中。在本章里,李马将为你详细解说它们的使用方法。另外,本章的内容也可以算是本书的核心部分——如果你要进行ATL的GUI程序设计的话,就必须将ATL的窗口类设计理念了然于心。窗口的组成把ATL的窗口类撇开不谈先。我在上一章中提到:窗口类并非任何一种OOP语言中的类——它所包括

2008-03-24 19:30:00 819

空空如也

空空如也

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

TA关注的人

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