POSIX 线程详解
一种支持内存共享的简捷工具 作者:Daniel Robbins 内容: 线程是有趣的 线程是快捷的 线程是可移植的 第一个线程 无父,无子 同步漫游 参考资料 关于作者 POSIX(可移植操作系统接口)线程是提高代码响应和性能的有力手段。在本系列中,Daniel Robbins 向您精确地展示在编程中如何使用线程。其中还涉及大量幕后细节,读完本系列文章,您完全可以运用 POSIX 线程创建多线程程序。 线程是有趣的 了解如何正确运用线程是每一个优秀程序员必备的素质。线程类似于进程。如同进程,线程由内核按...
在DBGrid中实现Copy、Paste功能
Copy和Paste加速按钮,对于使用Windows下编辑器的人来说,恐怕都是非常熟悉而且不可缺少的。Delphi中的有些控件,如:TDBEdit、TDBImage、TDBMemo、TEdit等,具有CutToClipboard、CopyToClipboard和PasteFromClipboard方法,在这些控件上,利用这几个方法,只要通过简单的编程,就可以实现上述加速按钮。但TDBGrid控件却不提供上述方法,无法直接实现这几种功能。而在单机的数据库应用程序中,TDBGrid却经常被用来进行数据(包括...
S-DES相关
下面是我根据《密码编码学与网络安全:原理与实践》(第二版,电子工业出版社)一书中S-DES编的一个与书上对应的S-DES程序,能通过编译,且正确 #includestdio.h main(){ int i,temp,temp1,a[8],k[10],k1[8],k2[8],t[8],t1[8],t2[8],p4[4],m[8]; int p10[10]={3,5,2,7,4,10,1,9,8,6}; int p8[8]={6,3,7,4,8,5,10,9}; int ip[8]={2,6,3,1,4,8...
References and arrays
PROBLEM: ajackson@keck.tamu.edu (Andrew J. Jackson) I'm inquiring on how to declare a reference to an array of integers RESPONS: Efim Birger (efim@microware.com) try this: typedef int *intp; int arr[10]; intp aaa = arr; RESPONSE: fjh@munta.cs.mu.OZ.AU (F...
软件编码规范
软件编码规范 前言: 通过建立代码编写规范,形成BCB 开发小组编码约定,提高程序的可靠性、可读性、可修改性、可维护性、一致性,保证程序代码的质量,继承软件开发成果,充分利用资源。提高程序的可继承性,使开发人员之间的工作成果可以共享。 软件编码要遵循以下原则: 1.遵循开发流程,在设计的指导下进行代码编写。 2.代码的编写以实现设计的功能和性能为目标,要求正确完成设计要求的功能,达到设计的性能。 3.程序具有良好的程序结构,提高程序的封装性好,减低程序的耦合程度。 4.程序可读性强,易于理解;方便调试和...
在ActiveX控件中引入窗体技术
一、引入Dialog技术 下面介绍在制作ActiveX控件时引入有模式对话框技术,制作步骤如下: 创建一新的MFC ActiveX ControlWizard项目,取名为Hello,其他用缺省选项; 在ResourceView页中新增一对话框资源,命名为IDD_HELLODIALOG,可以在对话框上放自己的控件; 为对话框资源IDD_HELLODIALOG创建新类CHelloDialog,从CDialog继承; 确认在HelloCtrl.h中已加入语句#include "HelloDialog.h",为...
C++类和接口的设计原则探讨
我这篇文章的主旨是介绍一部分类和接口的高质量设计的准则。这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码,而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动,主要也就是保持二进制代码兼容(binary compatibility)和源代码兼容(source compatibility)。我希望这些准则能帮助刚从学校进入工业领域的朋友尽快适应更高标准的编程要求,尽快提升自己的设计能力。 文中以C++类的设计为讨论范围。 总提 面向对象编程对于产出高质量,易维护的代码是非常有...
输入法编程指南
Windows 95输入法编辑器(IME) 原著:Microsoft 翻译:TBsoft Software Studio 一、关于Windows 95混合语言IME 在Windows 95中,IME是一个动态链接库(DLL),与Windows 3.1远东版本IME不同的是,每一个运行的IME相当于混合语言键盘布局中的一种。与Windows 3.1 IME相比较,Windows 95混合语言IME提供下列增强功能: ●运行时相当于混合语言环境的一个部件 ●为每一个应用程序任务提供多重输入上下文 ●为每一个...
使用Windows虚拟设备驱动程序(VxD)
一、VxD介绍 本文介绍VxD的作用。如果Windows 95提供的标准VxD对你的硬件或者软件不能提供100%的兼容支持,你需要为你的硬件或者软件(包括16位 和32位软件)创建VxD。如果你想让Windows用户使用你的硬件或者软件的某些新特征,你也可以创建VxD。 本文介绍如何写VxD,讲述了创建VxD所需的结构、过程和调用,还给出了创建和测试VxD的步骤。VxD可以是静态的或者动态装载的,下面的内 容主要讲述静态VxD,不过关于格式和功能的内容两者都适用。 二、什么是VxD VxD是一个管理例如...
使用C++和XML建立智能文档
访问智能文档内容 为了能起到作用,你的智能文档操作DLL一般需要访问(并且可能修改)下层的Office文档。在例子中,它是Excel项目进程表电子表格。为了这个目的,ISmartDocument的几个方法为你下层文档提供了一个IDispatch COM接口指针。在Office上编写COM的人知道,Idispatch提供了进入Office对象模型的通道。在Visual Basic中,使用Idispatch和类型库是相当自动化的,但是在C++中稍微复杂一些。 起先我准备使用#import指令,它允许Visu...
实例解析C++/CLI的“克隆”
C++/CLI不但支持基于堆栈的对象,同时也支持基于堆的对象;然而,如果想与其他基于CLI的语言(如C#、J#、Visual Basic)进行互操作的话,必须要清楚地知道,这些语言只支持基于堆的对象;当处于基于堆的对象环境中时,你与对象之间,永远只有"一臂之遥",比方说,两个给定的句柄h1与h2,只有在为这种句柄类型定义了相应的赋值操作符时,*h1 = *h2才会工作正常,而对C++/CLI之外的其他语言中的类型来说,情况可能就不是这样了。同样地,一个遵从CLS的机制需要创建对象的一份副本,这种机制被称...
穷举算法解题的一般思路
穷举算法是程序设计中使用得最为普遍、大家必须熟练掌握和正确运用的一种算法。它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案。 用穷举算法解决问题,通常可以从两个方面进行分析: 一、问题所涉及的情况:问题所涉及的情况有哪些,情况的种数可不可以确定。把它描述出来。 二、答案需要满足的条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。把这些条件描述出来。 只要把这两个方面分析好了,问题自然会迎刃而解。 例 1 : 36 块砖, 36 人...