
编程成长经历
彬彬在线
资料仅供分享,与大家研究,谢谢您的关注。
展开
-
com组件技术讲义
COM是Microsoft组件对象模型(Component Object Model)的简称。 COM是一个说明如何建立可动态交替更新组件的规范。它提供了客户和组件为保证能够互操作应该遵循的标准。该标准对于组件架构的重要性同其他任何一个具有可交替更新部分的系统是一样的。举个例子,如果没有国家标准(GB),那么各个厂家所生产的零件及产品将不能实现互换性。各个厂家各自为政,若电机上的螺栓坏了,就要原创 2008-03-26 14:44:00 · 1843 阅读 · 0 评论 -
Test Case
http://www.itisedu.com/phrase/200604240904345.html测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括原创 2008-03-26 14:38:00 · 1810 阅读 · 0 评论 -
什么是ATL
ATL,Active TEmplate Library活动模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。通过活动模板库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用。这种COM组件可以包含属性页、对话框等等控件。 ATL简介 一. 什么是ATL 自从1993年Microsoft首次公布了COM技术以后,Windows平台上的原创 2008-03-26 14:40:00 · 1052 阅读 · 0 评论 -
关于COM组件
<!--google_ad_client = "pub-4159669282587342";google_alternate_color = "FFFFFF";google_ad_width = 468;google_ad_height原创 2008-03-26 14:47:00 · 869 阅读 · 0 评论 -
__stdcall、__cdecl与__fastcall的区别
__stdcall与__cdecl的区别 1.参数入栈的方式 在函数调用过程中,会使用堆栈,这三个表示不同的堆栈调用方式和释放方式。 比如说__cdecl,它是标准的c方法的堆栈调用方式,就是在函数调原创 2008-04-23 13:37:00 · 846 阅读 · 0 评论 -
利用TWAIN-实现与图像输入设备的通讯
利用TWAIN-实现与图像输入设备的通讯TWAIN工作组是一个非盈利的国际组织。它旨在提供一个统一的标准接口,通过该接口就可以实现应用程序与图像输入设备间的通讯。其实该标准目前已经成为了应用程序与图像输入设备间通讯的事实标准。TWAIN的文件组成TWAIN共包括4个二进制文件。如果要使用该接口,就必须要保证他们被成功地安装在本地计算机上。文件名TWAIN_32.DLL32位原创 2008-05-04 16:08:00 · 2932 阅读 · 0 评论 -
探察RUNTIME_CLASS之类的秘密
学mfc学到文档,视图和框架的时候,知道必须在这三个类的派生类的类声明 里加上DECLARE_DYNCREATE,然后在类声明外合适的地方加上IMPLEMENT_DYNCREA TE,然后文档,视图和框架,还有文档模板就可以协调工作了。查看msdn,发现 类似的宏有这几对: DECLARE_DYNAMIC 和 IMPLEMENT_DYNAMIC DECLARE_DYNCREATE 和 IMPLEM原创 2008-05-06 18:48:00 · 1095 阅读 · 0 评论 -
Visual C++开发经验技巧宝典
Visual C++开发经验技巧宝典 书名:Visual C++开发经验技巧宝典 作者:明日科技 编著 来源:人民邮电出版社 出版时间:2007年11月 ISBN:9787115166593 定价:89元 看 书 评 论 收 藏打 分 购 买 图书版权归出版社和作者所有,优快云 & D原创 2008-05-07 09:17:00 · 1081 阅读 · 0 评论 -
WIN32_FIND_DATA结构
WIN32_FIND_DATA结构 关于文件的全部属性信息,总计有以下以下9种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种属性的获取和设置就无能为力了。 在用findfirst()和f原创 2008-05-08 10:00:00 · 996 阅读 · 0 评论 -
Win32编程基础知识
尽管Windows应用程序千变万化,令人眼花缭乱,但,消息机制和窗口过程却始终它们的基础,掌握了这两项技术,也就相当于把握住了问题的关键。 如果你以前是C程序员或是MFC的忠实用户,只要你学习过C语言的语法,自己亲手编过一些简短的C程序,理解以下的Win32编程基础也不是一件困难的事。 一个最简单的Win32程序 在以前的C语言编程中,一个最简单的程序可以只有两行。原创 2008-05-08 10:06:00 · 1035 阅读 · 0 评论 -
函数出错会返回值
一直只知道CreateFile出错时会返回INVALID_HANDLE_VALUE,今天看MSDN才发现原来FindFirstFile出错时也会返回这个破东西,差点儿就又为windows mobile添了一个潜在的bug.特此留念以示警钟长鸣.调用windows函数时,首先要检验传递给他的各个函数的有效性,然后再设法执行任务~windows对函数调用错误的返回值:VOID:运行基本不会出错。但原创 2008-05-08 10:22:00 · 2133 阅读 · 0 评论 -
GetLastError返回值的代表什么意思!
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效。〖14〗-存储器不足,无法完成此操作。〖15〗-原创 2008-07-16 16:02:00 · 4707 阅读 · 4 评论 -
powerdesigner教程系列
powerdesigner教程系列(一)目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。一、概念数据模型概述数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2)容易为人所理解3)便于计算机实现概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了原创 2008-05-26 14:21:00 · 1591 阅读 · 1 评论 -
AFX_MANAGE_STATE(AfxGetStaticModuleState())
写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE (AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废 话。 最近的项目中,需要在DLL里使用MFC生成界面,这才发现一旦资源放在不同的动态库里,而且还和原创 2008-05-30 11:32:00 · 8293 阅读 · 2 评论 -
TIF格式图像文件初探
本文示例源代码或素材下载一、前言 因工作需要,本人经常接触一些图像方面的编程工作。目前图像领域中的格式很多且大部分官方说明都是英文文档,实在令人头疼,我想受此困扰的程序员朋友不在少数吧。这里本人不揣浅陋,写了一个将TIF格式转换成BMP格式图像的程序,供大家参考。请不吝赐教。 注:TIF是可扩充标记的文件,所以理论上是不可能编写一个能识别所有类别TIF格式的读写程序,这里只是给大原创 2008-06-18 11:26:00 · 1724 阅读 · 0 评论 -
使用const的好处
使用const的好处在于它允许指定一种语意上的约束——某种对象不能被修改——编译器具体来实施这种约束。通过const,你可以通知编译器和其他程序员某个值要保持不变。只要是这种情况,你就要明确地使用const ,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。 对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const,还有,两者原创 2008-09-09 10:06:00 · 1703 阅读 · 0 评论 -
虚函数
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解原创 2008-09-17 10:12:00 · 833 阅读 · 1 评论 -
演练VC中的common一族
1.表头控制 Header Control2.图像列表控制 Image List3.列表控制和视 List Control&List View4.树控制和视 Tree Control&Tree View5.标签控制和视 Tab Control&Tab View6.工具条控制 Toolbar Control7.进度条控制 Progress Control8.滑动条控制 Slider Control9原创 2008-09-24 09:47:00 · 2184 阅读 · 0 评论 -
WIN32上的多线程
最近由于使用多线程,不可避免的要用到线程之间的同步,对一些常用的windows 中同步函数和机制有了一些初步的了解,并且写了一些小例子来验证,当然其中难免有错误和疏漏之处,希望高手能给我这个小鸟指出不足之处,非常感谢。目录一 临界区二 互斥体三 事件四 信号量五 附录一 临界区临界区的使用在线程同步中应该算是比较简单,说它简单还是说它同后面讲到的其它方法相比更容易理解。举个简单原创 2008-09-27 18:17:00 · 782 阅读 · 0 评论 -
c++实现文件传输之一:框架结构和界面实现
在木马中文件管理的重要性,是无需质疑的,对于文件的管理,做到并不难,但做好却也不易在我们编写一个功能完整的“文件木马”其实现效果如图所示。为了文章的完整性,我们将分为数篇来介绍,本文主要介绍程序的整体框架和界面实现,在以后的文章中将以此框架为基础实现详细的功能。编写环境程序的编写环境为VC6.0+WINDOWS2000 除界面外的其它部分如,程序框架,功能实现 大多用API实现所以若要移值到其它环原创 2008-10-21 09:11:00 · 3349 阅读 · 1 评论 -
c++实现文件传输之二:功能实现
在上一篇中,我们以经介绍了程序的流程和框架,在本篇将详细讨论各个功能的实现主要包括1.获取磁盘信息2.获取目录信息3.获取文件信息4.运行指定文件5.删除指定文件6.删除指定目录7.创建指定目录8.上传下载文件9.获取远程文件图标获取磁盘信息磁盘信息可以用API GetDriveType来实现,它以路径名作为参数(如C:/)返回磁盘类型,其实例代码如下DWORD GetDriverProc(COM原创 2008-10-21 09:17:00 · 4100 阅读 · 1 评论 -
c++实现文件传输之三:断点续传与多线程传输
继木马编程DIY的上两篇,现在我们开始讨论断点续传与多线程文件传输的实现.其实这两项功能是下载软件所必不可少的功能了,现在我们把它加到自己的木马中来感受感受.提到多线程下载,首先向网络蚂蚁的作者洪以容前辈致敬,正是由于网络蚂蚁而使得多线程下载被关注并流行起来.在这本篇文章中我们将简单的实现支持断点续传和多线程传输的程序.为了更清晰的说明问题,我们将断点续传与多线程传输分别用两个程序来实现多线程传输原创 2008-10-21 09:19:00 · 12550 阅读 · 1 评论 -
c++实现文件传输之四:断点传输
所谓的断点续传就是指:文件在传输过程式中被中断后,在重新传输时,可以从上次的断点处开始传输,这样就可节省时间,和其它资源.实现关键在这里有两个关键点,其一是检测本地已经下载的文件长度和断点值,其二是在服务端调整文件指针到断点处实现方法我们用一个简单的方法来实现断点续传的功能.在传输文件的时候创建一个临时文件用来存放文件的断点位置在每次发送接受文件时,先检查有没有临时文件,如果有的话就从临时文件原创 2008-10-21 09:20:00 · 7048 阅读 · 0 评论 -
私有数据成员和友元
一、私有数据成员的使用 1.取值和赋值成员函数 面向对象的约定就是保证所有数据成员的私有性。一般我们都是通过公有成员函数来作为公共接口来读取私有数据成员的。某些时候,我们称这样的函数为取值和赋值函数。 取值函数的返回值和传递给赋值函数的参数不必一一匹配所有数据成员的类型。 #include iostream.h class Date原创 2008-10-23 12:54:00 · 1073 阅读 · 0 评论 -
再次说起const的妙处
CONST目录 C中的CONST C++中CONST PHP5中的CONST ASP中的CONST C#.net中的const C中的CONST C中CONST的使用: const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的原创 2008-10-23 13:12:00 · 1012 阅读 · 0 评论 -
C++ 友元类
/*预引用.告诉编译器类B将会在后面定义.使用了预引用后,就可以声明未定义的类的友元、指针和引用。但是不可以使用那些需要知道预引用的类的定义细节的语句,如声明该类的一个实例或者任何对该类成员的引用。*/ class B; /*注明见上*/class A { public: firend B; }; class B { }; 若不使用预引用.则声明友元时必须加class. class A { pub原创 2008-10-23 12:52:00 · 787 阅读 · 0 评论 -
编程成长123.....
有很多朋友问我该怎么学编程,要是说如何成为一名优秀的程序员,我觉得我还没有能力说三道四,但要说如何成为一名合格的Win32程序员,我个人倒是有一些些的见第:学习编程,成为一名合格的程序员是一条漫长而又艰辛的道路,当然,你的付出也会得到回报,首当其冲的就是那份成功时的快感,它非常重要,可以说是你学习的最初动力,其次,就是薪水问题了,程序员的薪水现在相对来说会比其它一般行业来得高出许多。为一名好的原创 2008-10-11 11:57:00 · 742 阅读 · 0 评论 -
流量控制技术[我也是个网络编程的初学者,大家相互交流下!]
在数据通信中,要求发送方的发送数据速率必须不能超过接收方的接收和处理数据的速率。当接收方来不及接收和处理数据时,就必须采取相应的措施来控制发送方发送数据的速率。一般流量控制是由接收方主动控制实现的。流量控制方法:1、开关式流量控制: XON/XOFF, 硬件 2、协议式流量控制: ARQ自动重发请求原创 2008-10-14 13:53:00 · 4409 阅读 · 0 评论 -
浅析FTP的工作原理
浅析FTP的工作原理 摘要通过阅读本文,您可以了解到FTP的基本的工作原理。作者以建立FTP连接到断开FTP连接的方式详细介绍了 FTP会话全过程。如果您对PORT模式或者PASV模式的FTP工作原理有些疑惑,相信本文能使您了解更多的细节,使您更加从容的面对企业的网络流量以 及安全的管理,特别是如果您的企业正准备在企业内部署ISA Server 2000,或许会给您原创 2008-10-14 13:58:00 · 1028 阅读 · 0 评论 -
WinSock学习笔记(二)
与socket有关的一些函数介绍1、读取当前错误值:每次发生错误时,如果要对具体问题进行处理,那么就应该调用这个函数取得错误代码。 int WSAGetLastError(void ); #define h_errno WSAGetLastError()错误值请自己阅读Winsock2.h。2、将主机的unsigned long值转换为网络字节顺序(32位):原创 2008-11-04 11:22:00 · 599 阅读 · 0 评论 -
内存映射:内存映射文件
(IP Messenger在程序结构方面采用了Windows SDK处理结构,通信方面采用了TCP/UDP通信方式,在文件传输处理方面采用文件映射技术,等等。通过分析IP Messenger的运行、工作原理,可以提高并加深对Windows处理流程的理解,提高SOCKET编程技术等,因此特对其源码进行分析,以抛砖引玉,共同提高大家的编程技术。)先来看看:文件映射技术的相关文章!希望能有所收获!原创 2008-11-05 14:32:00 · 754 阅读 · 0 评论 -
Linux下各类TCP网络服务器的实现源代码
Linux下各类TCP网络服务器的实现源代码 大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务。这里附上源代码来个小结吧。* ^9 r2 B6 Y( Q/ l* ]1 O1 i7 @8 r, R# W A" H K) Z9 u1 v首先,循环网络服务器编程实现的步骤是这样的:0 v: O& d" J1 N# i4 Z. G/ t7 n; s. zht原创 2008-11-04 11:17:00 · 1009 阅读 · 0 评论 -
WinSock学习笔记(一)
Socket(套接字)◆先看定义:typedef unsigned int u_int;typedef u_int SOCKET;◆Socket相当于进行网络通信两端的插座,只要对方的Socket和自己的Socket有通信联接,双方就可以发送和接收数据了。其定义类似于文件句柄的定义。◆Socket有五种不同的类型:1、流式套接字(stream socket)定义:#define SOCK原创 2008-11-04 11:25:00 · 655 阅读 · 0 评论 -
完成端口(IOCP) 也可以这样用~~呵呵~ 用来充当线程之间的数据队列~
完成端口貌似就是用 PostQueuedCompletionStatus/GetQueuedCompletionStatus 来管理一个事件队列的~ 即使没有 文件和Socket IO,我们单单用他来管理 线程之间的数据传递,貌似也很好用啊。。。。 ;p// Test32.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include stdlib.原创 2008-11-07 15:08:00 · 986 阅读 · 0 评论 -
回调函数
回调函数(一篇好文章与大家分享!看过之后有如醍醐灌顶般舒服!心中的诸多疑惑顿解!) 调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。 CPU为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场真是一项绝妙的发明,它使调用者和被原创 2008-11-07 18:34:00 · 822 阅读 · 0 评论 -
C语言---回调函数------------->解析
什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。 如果想知道回调函数在实际中有什么作原创 2008-11-07 20:13:00 · 3575 阅读 · 2 评论 -
typedef使用大全3(指向函数的指针)//typedef的使用可以隐藏复杂的函数指针语法
#include #include #include //////////////////////////////////////////函数声明int myAdd(int,int);int mySub(int,int);int myMul(int,int);int myDiv(int,int);//////////////////////////////////////////typedef原创 2008-11-08 16:39:00 · 1099 阅读 · 0 评论 -
C/C++中函数指针的含义(闭关修炼内功!哈哈!)
函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢? 如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针 函数指针不能绝对不能指向不同类型,原创 2008-11-08 16:01:00 · 952 阅读 · 0 评论 -
typedef用法小结
typedef 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下: 来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。原创 2008-11-08 16:45:00 · 809 阅读 · 1 评论 -
完成端口
I/O完成端口背后的理论是同时运行的线程数必须有个上界;也就是,500个并发的客户端请求不必要500个线程存在。那么,合适的并发线程数是多少呢?你会意识到,如果一个机器有两个CPU,那么在此基础上多余两个以上的线程实在是没有意义。因为,当有超过CPU数量的线程数时,系统不得不耗费时间来进行线程之间的切换,这会浪费宝贵的CPU时钟周期。为每个客户端创建一个线程还有一个不足,就是创建一个线原创 2008-11-17 16:39:00 · 1106 阅读 · 0 评论