随笔分类 -  C/C++

Windows管道技术简述
摘要:不知你是否用过这样的程序,他们本身并没有解压缩的功能,而是调用DOS程序PKZIP完成ZIP包的解压缩。但是在程序运行时又没有DOS控制台的窗口出现而且一切本应该在DOS下显示的信息都出现在了那个安装程序的一个文本框里。这种设计既美观又可以防止少数眼疾手快的用户提前关了你的DOS窗口。现在就来讨论一下,如何用匿名管道技术实现这个功能。管道技术由来已久,相信不少人对DOS命令里的管道技术最为熟悉。当... 阅读全文
posted @ 2007-03-04 14:10 张尹 阅读(997) 评论(0) 推荐(0)
内核printf源代码分析
摘要:打开Source Insight来阅读EduOS的源代码,我们在stdio.c里找到了printf的实现代码.首先看看对printf的定义:int printf (const char *cntrl_string, ...)第一个参数cntrl_string是控制字符串,也就是平常我们写入%d,%f的地方.紧接着后面是一个变长参数.看看函数头部的定义: int pos = 0, cnt_print... 阅读全文
posted @ 2007-03-04 13:55 张尹 阅读(1097) 评论(0) 推荐(0)
获得控制台程序的输出
摘要:在Windows环境下的所谓shell程序就是dos命令行程序,比如VC的CL.exe命令行编译器,JDK的javac编译器,启动java程序用的java.exe都是标准的shell程序。截获一个shell程序的输出是很有用的,比如说您可以自己编写一个IDE(集成开发环境),当用户发出编译指令时候,你可以在后台启动shell 调用编译器并截获它们的输出,对这些输出信息进行分析后在更为友好的用户界... 阅读全文
posted @ 2007-03-04 13:53 张尹 阅读(1444) 评论(0) 推荐(0)
如何在控制台程序中读取WORD文档的内容?
摘要:1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦) 2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库(例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),选... 阅读全文
posted @ 2007-03-04 13:36 张尹 阅读(4361) 评论(3) 推荐(0)
简单封装的一个彩色进度条
摘要://=========================================================////Copyright(c)2000-2004iWiseTechnologies,Co.Ltd.//AllRightsReserved.////Product:iW988//File:GradientProgressCtrl.h//Created:天衣有缝////Descrip... 阅读全文
posted @ 2007-02-23 14:29 张尹 阅读(676) 评论(0) 推荐(0)
C语言编程技巧汇萃(包含大量实用函数)
摘要:编程函数集,详细内容如下:读键盘扫描码获取机器日期将浮点数转化为字符串清除屏幕显示时间打印一个矩形砍掉字符串中所有空格取子字符串从文件中读取字符字符串左靠齐取左字符串向文件写数据取右字符串打开或关闭光标喇叭发声时间延迟正点报时写整数于文件中从文件中读取整数报警字符串右靠齐字符串居中删除子字符串查找指定字符串产生空格产生字符串砍掉字符串左边空格砍掉字符串右边空格显示一个字符串定义屏幕颜色显示提示窗口... 阅读全文
posted @ 2007-02-15 02:51 张尹 阅读(645) 评论(0) 推荐(0)
一个编程函数集(包含大量C实用函数)
摘要:又一个编程函数集(包含大量实用函数)编程函数集,详细内容如下:格式化字符串转换鼠标驱动西文模式下输出汉字(BGI)三维窗体时钟中断服务取得键盘扫描码文本模式光标定位显示的关闭与开启文本模式的直接写屏技术TVGA直接写屏图形引擎/**//*-------------------------------------------------------------------------*//**//*... 阅读全文
posted @ 2007-02-15 02:44 张尹 阅读(516) 评论(0) 推荐(0)
MD5算法说明及源码
摘要:1.补位: MD5算法先对输入的数据进行补位,使得数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数。 具体补位操作:补一个1,然后补0至满足上述要求。 2.补数据长度: 用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数 据就被填补成长度为512位的倍数。 3.初始化MD5参数: 四个32位整数 (A,B,C,D)... 阅读全文
posted @ 2007-02-15 02:36 张尹 阅读(927) 评论(0) 推荐(0)
动态真彩工具栏
摘要:动态真彩工具栏作者:王健下载本文配套源代码源代码执行效果图如下: 与VCKBASE接触良久,从来都是贪婪的从中掘取好用的东东,却没想过把自己的东西拿出来与人共享,很不好意思。自从我的RangerChat点对点聊天工具在VCKBASE上发表以来收到众多朋友的来信。他们很多人都说一次性看这么多代码,还真不知如何从中提取自己想要的东西。现在奉上我做项目过程中的一些好的资源片段供大家评判。以后我会不间断的... 阅读全文
posted @ 2007-01-22 01:37 张尹 阅读(584) 评论(2) 推荐(0)
一个实用的 CToolBar 扩展类 CToolBarEx
摘要:一个实用的 CToolBar 扩展类 CToolBarEx作者:xiaojin下载源代码  我们知道,程序中的工具条是在CMainFrame中生成的,采用的类是CToolBar,使用起来很复杂。为此,对CToolBar的常用功能进行封装,生成了它的一个继承类CToolBarEx,大大简化了操作。本文参考了 VCKBASE 以前发表的关于工具条的文章,在此先表示感谢!编译环境:Windows 200... 阅读全文
posted @ 2007-01-22 01:29 张尹 阅读(902) 评论(0) 推荐(0)
一步步制作真彩工具条
摘要:一步步制作真彩工具条作者:skyformat99下载源代码例子程序最终效果图:  一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。最近终于有所发现,因此在这里将自己在制作真彩工具条方面的小经验介绍给大家,以期抛砖引玉。  在这里将介绍两个重点的内容,一个是制作真彩工具条... 阅读全文
posted @ 2007-01-22 01:27 张尹 阅读(819) 评论(0) 推荐(0)
[转载精品]C++程序员经常问的11个问题
摘要:这篇文章收了好长时间,但还是觉得贴出来,作为收藏,在网上这样的浮躁环境,很少能认认真真地看这样长的文章,有时间我也要把《EffectiveC++》的读书笔记作出来。以下是原文:下面的这些要点是对所有的C++程序员都适用的。我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的。如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的地方,甚至是对一些高级的... 阅读全文
posted @ 2007-01-22 01:16 张尹 阅读(413) 评论(0) 推荐(0)
关于CRichEditCtrl中文字颜色的控制
摘要:我们在开发一个软件时经产需要输出一些文字或者告警,微软的MFC类库中为我们提供了功能强大的CEdit,可以让开发人员们简单的实现这一功能,但有时觉得CEdit的功能好像并不那么强大,比如我们想对输出的文字中的某一部分单独控制,改变其字体或颜色。于是CRichEditCtrl就显现出了他功能强大的一面。 那我们该如何使用CRichEditCtrl来实现我们的目的呢? 首先我们需要定义一个CRichE... 阅读全文
posted @ 2007-01-22 00:45 张尹 阅读(3462) 评论(0) 推荐(0)
如何制作Windows自定义边框的对话框
摘要:在Windows应用程序中,对话框是应用最广泛也是比较难控制其风格(外表)的 一类窗口。Windows 3.x所提供的传统的对话框一般都有一个单调的蓝色的边框 和白色窗口背景,即使采用Borland C++所提供的BorDlg风格的对话框,用自定义 控制(BWCC)来美化对话框的背景及内容,呆板的边框还是一成不变的。相信用过 Windows 95的朋友在享受其强大功能的同时,一定也为它所提供的具有... 阅读全文
posted @ 2007-01-17 02:48 张尹 阅读(1026) 评论(0) 推荐(0)
MFC下窗口分割和文字输出的实现
摘要:在*VIEW类的函数ondraw()中可以由pDC->textout(x,y,string)来实现文字输出。 但阿陆说在窗口分割之后并不能实现输出,而且两个窗口中都没有输出。我并不清楚他是怎样做窗口分割的。后来我实现了一下,思路是直接建立一个单文档工程。在本来已有一个CMfcTView类下再添一个视图类:CChildView。 一、实现窗口分割的条件:在目标frame中添加分割对象,即在其头文件的... 阅读全文
posted @ 2007-01-17 02:43 张尹 阅读(3507) 评论(0) 推荐(0)
让ListBox控件支持拖动
摘要:通常我们通过ListBox控件来显示我们的信息列表,然后我们可以通过鼠标来选择我们的条目信息,但VC中的ListBox控件是不支持拖动的。也许我们有时需要改变我们的列表顺序,已适应我们的要求,下面是实现的方法。 设计思路: 1. 如果通过鼠标左键选中某一条目并拖动,此时我们通过变量记录当前选中条目的位置和条目字符串以及此条目的副值。 2. 鼠标移动到要移动到的位置后放开左键,此时我们把... 阅读全文
posted @ 2007-01-17 02:37 张尹 阅读(413) 评论(0) 推荐(0)
VC通用控件编程之CSlider控件
摘要:滑动条控制(Slider Control)也叫轨道条控制,其主要是用一个带有轨道和滑标的小窗口以及窗口上的刻度,来让用户选择一个离散数据或一个连续的数值区间。通过鼠标或键盘来进行数据的选择操作,这在WIN98/95中的很多应用程序中都可以看到,如控制面板中的鼠标等,滑动条既可以是水平方式的也可以是垂直方式的。滑动条控制的风格如下: TBS_HORZ 滑动条是水平方向的 TBS_VERT 滑... 阅读全文
posted @ 2007-01-17 02:34 张尹 阅读(1099) 评论(0) 推荐(0)
CListCtrl使用详解
摘要:1。先来介绍REPORT类型的CListCtrl:首先使用下面的语句设置CListCtrl的style: DWORD SetExtendedStyle( DWORD dwNewStyle );其中 LVS_EX_CHECKBOXES 表示添加CheckBox LVS_EX_FULLROWSELECT 表示选择整行 LVS_EX_GRIDLINES 表示添加表格线 如果设置了LVS_EX_CHECK... 阅读全文
posted @ 2007-01-17 02:33 张尹 阅读(422) 评论(0) 推荐(0)
一个不错的算法
摘要:#define INF 32767#define max 10void dispath(int dist[max],int path[max],int s[max],int n,int v0) { int i,k; for(i=0;i<n;i++) { if(s[i]==1) { k=i; printf("%d reach %d the least dist... 阅读全文
posted @ 2006-12-31 01:40 张尹 阅读(204) 评论(0) 推荐(0)
CString 操作指南
摘要:参考文章:codeproject:CString Management 通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString... 阅读全文
posted @ 2006-12-31 01:36 张尹 阅读(210) 评论(0) 推荐(0)