
资料
文章平均质量分 69
jeven2005
诚交天下朋友~
展开
-
设计模式 观察者模式
名称Observer 结构 意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。适用性当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。 当对一个对象的改变需要同时改变其它对象, 而不知道具原创 2009-11-19 11:15:00 · 305 阅读 · 0 评论 -
COM 组件设计与应用7 - 编译、注册、调用
一、前言 上两回中,咱们用 ATL 写了第一个 COM 组件程序,这回中,主要介绍编译、注册和调用方法。示例程序你已经下载了吗?如果还没有下载,vc6.0 的用户点这里,vc.net 的用户点这里。二、关于编译 2-1 最小依赖 “最小依赖”,表示编译器会把 ATL 中必须使用的一些函数静态连接到目标程序中。这样目标文件尺寸会稍大,但独立性更强,安装方便;反之系统执行的时候需要有 ATL.D转载 2006-03-24 14:00:00 · 1046 阅读 · 1 评论 -
COM 组件设计与应用6 - 用 ATL 写第一个组件
下载源代码一、前言 1、与 《COM 组件设计与应用(五)》的内容基本一致。但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对。 2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接。 3、下面.转载 2006-03-24 13:57:00 · 837 阅读 · 0 评论 -
COM 组件设计与应用5 - 用 ATL 写第一个组件
下载源代码一、前言 1、如果你在使用 vc5.0 及以前的版本,请你升级为 vc6.0 或 vc.net 2003; 2、如果你在使用 vc6.0 (ATL 3.0)请阅读本回内容; 3、如果你在使用 vc.net(ATL 7.0)请阅读下回内容;(当然读读本文内容也不错) 4、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它转载 2006-03-24 13:54:00 · 766 阅读 · 0 评论 -
COM组件设计与应用4 - 简单调用组件
二、组件的启动和释放 在第三回中,大家用“小本本”记录了一个原则:COM 组件是运行在分布式环境中的 。于是,如何启动组件立刻就遇到了严重的问题,大家看这段代码: p = new 对象; p->对象函数(); delete p; 这样的代码再熟悉不过了,在本地进程中运行是不会有问题的。但是你想想,如果这个对象是在“地球另一边”的计算机上,结果会如何转载 2006-03-24 13:51:00 · 782 阅读 · 0 评论 -
COM组件设计与应用2 - GUID 和 接口
typedef struct _GUID { DWORD Data1; // 随机数 WORD Data2; // 和时间相关 WORD Data3; // 和时间相关 BYTE Data4[8]; // 和网卡MAC相关} GUID;typedef GUID CLSID; // 组件IDtypedef GUID IID; // 接口ID#define转载 2006-03-24 13:43:00 · 745 阅读 · 0 评论 -
COM技术初探(一)
COM技术初探(一)作者: venture 下载源代码 目录 一. COM是一个更好的 C++转载 2006-03-24 13:27:00 · 1130 阅读 · 0 评论 -
COM 组件设计与应用 - 起源及复合文件
一、前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些OLE的技术吧......”,当时我心里就寻思 :“开什么玩笑?搭积木方式写程序?再过100年吧......”,但作为一名听话的好学生,我开始在书店里“踅摸”(注1)有关OLE的书籍(注2)。功夫不负有心人,终于买到了我的第一本COM书《OLE2 高级编程技术》,这本800多页的大转载 2006-03-24 13:37:00 · 842 阅读 · 0 评论 -
利用JS获取IE客户端IP及MAC的实现
在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。在ASP.NET中,要获取服务器端的MAC很容易,但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用Javascript,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务原创 2006-01-09 18:19:00 · 2737 阅读 · 2 评论 -
面向对象设计的几条经验准则
这段时间在看Arthur J.Riel的《Object-Oriented Design Heuristics》,于是参考总结了如下的几条面向对象设计原则:所有数据都应隐藏在它所在类的内部。类的使用者必须依赖类的公有接口,但类不能依赖它的使用者。尽量减少类的协议中的消息。实现所有类都理解的最基本的公有接口,如拷贝操作,相等判断,正确输入内容等。不要把实现细节放在类的公有接口中。不要以用户无法使用或不原创 2006-01-10 21:24:00 · 1636 阅读 · 0 评论 -
VC遍历窗体控件的实现
最近在写控制台,在设计界面按钮风格时不想通过每个按钮的ID来获取其句柄,而是通过遍历窗体所有控件,然后判断其控件类型进而来实现。 代码如下: // 遍历得到页面中的所有Button控件,依次设定其样式和颜色 CWnd* pWnd = GetWindow(GW_CHILD); char cClassName[255]=...{原创 2006-09-05 19:45:00 · 1830 阅读 · 1 评论 -
Linux基本操作命令
首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不转载 2006-09-21 12:49:00 · 887 阅读 · 0 评论 -
Linux网络服务配置文件详解
从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配置网络,使其高效,安全的工作就显得十分重要.下面我们就从网络设备的安装,网络服务的设置和网络安全性三个方面来介绍一下linux系统中网络的设置.一.安装和配置网络设备 在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的ip地址,缺省网关的ip地址,DNS的ip地址等等转载 2006-10-20 10:46:00 · 1679 阅读 · 1 评论 -
lAMP安装手记
资源下载:http://download.chyangwa.com/linux/apache/httpd-2.2.4.tar.gzhttp://download.chyangwa.com/linux/MySQL/mysql-5.0.19.tar.gzhttp://download.chyangwa.com/linux/PHP/php-5.0.5.tar.gzhttp://wordp原创 2009-03-18 23:49:00 · 406 阅读 · 0 评论 -
ACE日志系统
介绍了ACE中日志系统(Logging Facility)的基本使用 一、简介以前曾介绍过一个开源日志系统log4cplus,ACE也有自己的Logging Facility,与log4cplus相似,ACE日志系统也具有线程安全、灵活、分级显示等特点,可以面向程序调试、运行、测试、和维护等全生命周期,可以选择将信息输出到屏幕、文件、系统日志(如Windows下的Event log)、甚至转载 2009-03-10 09:19:00 · 454 阅读 · 0 评论 -
mount 用法总结
最近几次发现mount了一个网络共享磁盘后, 就无法umount, 老是提示:device is busy, 服务又不能停止的。 无意发现可以用"umount -l"解决! 上网找下umount -l,发现这里讲得不错:http://blog.chinaunix.net/u/4206/showart_105859.html 2. mount的基本用法是?原创 2008-11-29 12:26:00 · 549 阅读 · 0 评论 -
自己写的一个文本分类工具
文本分类隶属于数据挖掘方面的一个分支,不过,就文本分类而言尚有相当大的研究空间,关于文本分类,网上的资料很多,有兴趣的同事可以去研究一下. 目前文本分类可以在公司应用系统中的域名分类,垃圾邮件识别,WEB爬虫,IDC内容分析等各子系统中实际应用,此外文本分类将来也可能在行为分析,内容过滤(绿网客户端)等发挥作用. 文本分类的实现过程可以用下图表示:原创 2008-09-19 14:14:00 · 1805 阅读 · 1 评论 -
检测TCP非正常断开连接 SO_KEEPALIVE 使用缺陷分析
目前手头有个关于心博功能的一个案例, 在使用SOL_SOCKET, SO_KEEPALIVE上有一点心得,想写出来和大家分享一下。关于SOL_SOCKET选项SO_KEEPALIVE有一个很详细的英文How TO, 在下面的网页中大家可以看到详细的内容http://www.icewalkers.com/Linux/Howto/TCP-Keepalive-HOWTO/index.html在《转载 2007-12-11 14:16:00 · 5073 阅读 · 2 评论 -
WINDOWS网络包过滤技术
WINDOWS网络包过滤技术 (原文:http://www.ndis.com/papers/winpktfilter.htm)//似乎是翻译的#转者注:)//作 者: sevencat (七猫) //原文作者不详#转者注一、user-mode网络包过滤1、winsock分层service provider参照Microsoft Platform SDK上有关文档转载 2008-03-03 20:35:00 · 816 阅读 · 0 评论 -
数据库外键,用是不用?
对于主/外键/索引来说,在一些开发团队中被认为是处理数据库关系的利器,也被某些开发团队认为是处理某些具体业务的魔鬼,您的观点呢?在实际应用中您会采取哪种方式?大家共同观点:主键和索引是不可少的,不仅可以优化数据检索速度,开发人员还省不其它的工作, 矛盾焦点:数据库设计是否需要外键。这里有两个问题:一个是如何保证数据库数据的完整性和一致性;二是第一条对性能的影响。正方观点:1,由数据库自身保证数据转载 2008-02-28 13:05:00 · 1284 阅读 · 0 评论 -
Linux下的多线程编程
Linux下的多线程编程 本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00) 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在转载 2007-05-08 19:29:00 · 683 阅读 · 0 评论 -
RFC2190 - RTP Payload Format for H.263 Video Streams
Network Working Group C. ZhuRequest for Comments: 2190 Intel Corp.Category: Standards Track September 1997RTP Payload Format for H.263 Video StreamsStatus of This MemoThis document specifies an Intern转载 2007-03-09 13:11:00 · 1396 阅读 · 0 评论 -
深入探讨MFC消息循环和消息泵
这是我至今为止看到的关于MFC消息机制最为经典的一篇文章,特收录至此,供日后借鉴! 首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是转载 2007-03-09 11:02:00 · 787 阅读 · 0 评论 -
工作线程中调用UI线程创建的窗口的UpdateData会导致Assert的问题及解决办法
最近写了个代码,在UI线程中创建了一个窗口,然后在工作线程中修改了这个窗口中的一些数据,然后想用UpdateData(FALSE)来更新窗口的内容,结果在Debug版本下面就出现了Assert报错,说出错地方是wincore.cpp的888行和889行,就是这两句 ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL || (p = p原创 2007-02-14 16:20:00 · 1919 阅读 · 0 评论 -
用JAVA打造自己的QQ(一)
我曾用VB做了个局域网聊天的小程序,那时只是模仿一个源码抄写的,代码量也很少,一共也只不过两百行的代码,且只能两个人对聊,用的是VB中的一个WINSOCK控件,那时其实对WINSOCK网络编程一无所知,正好现在正在学网络编程,本想用C#来实现,但想想用C#再做个QQ类似的东西价值不大,加上我这段时间正想好好学习JAVA,于是趁热打铁,既熟悉了网络编程,又可以学习JAVA编程,一举两得,何乐而不为呢原创 2005-05-30 20:16:00 · 1375 阅读 · 0 评论 -
java awt学习
java.awt包中提供了GUI设计所使用的类和接口,如下图:500)this.width=500" border="0" alt=""/>java的图形用户界面最基本的组成部分是component,组件不能独立显示的,必须将组件放在一个容器中才可以。(如panel,frame)container也是一个component的子类,因此容器也是一个组件,它具有组件的所有的性质,但它的主要功能就是容纳原创 2005-04-24 14:33:00 · 960 阅读 · 0 评论 -
若干与RSS相关的开源项目收集
一 jpluck项目描述:Converts web sites and RSS feeds to Plucker documents for offline reading on handhelds. 将web站点和RSS反馈转变成Plucker 文档,以供在手持设备上离线阅读 来源: http://sourceforge.net/projects/jpluck/类别:Development St原创 2005-09-10 22:22:00 · 736 阅读 · 0 评论 -
Java 编程技术中汉字问题的分析及解决(从根源上解决)
很难找到的一篇极棒的文章,它从本质上解决了java的汉字编码问题............在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题。一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够让那些汉字正确显示呢?Java 语言默认的编码方式是UNICODE ,而我们中国人通常使用的文件和数据库都是基于 GB2312 或者 BIG5 等方式编码的,怎样才能够恰当地选择汉字编原创 2005-09-10 22:11:00 · 547 阅读 · 0 评论 -
自己动手打造企业级短信平台(上)
在通讯发达的今天,短信已经成为人们交流的重要手段,与E-Mail、电话等传统交流方式相比,短信有着不可比拟的优势。越来越多的企业开始选择使用短信平台来进行企业宣传、行业应用、系统集成等等。当你决定构造一个企业的短信平台时,你面临着以下几种选择:一是通过互联网或专线接入移动运营商短信中心或短信网关;二是通过互联网或专线接入中间服务运营商的短信中心(如新浪、网易这种SP服务商);三是通过计算机连接手机原创 2005-04-27 23:03:00 · 1032 阅读 · 0 评论 -
借用 Google 构建自己的搜索系统
随着网络越来 越发达,互联网上的资料多的只能以海量的海量来形容。如何从海量的数据中找到自己需要的数据呢?Google 解决了这个问题,为我们提供了优秀搜索服务。现在我们可以借用 Google 来构建自己的搜索系统。这里构建 的搜索系统不是把 Google 提供的一段 html 代码嵌入到网页,这样只是制造了一个 Google 搜索入口而已。 Google 提供了一个 Google Web API原创 2005-08-17 00:53:00 · 658 阅读 · 0 评论 -
在winform里怎么调用WebBrowser控件里的脚本
JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里的方法是通过反射来实现的,即,通过System.Type.InvokeMember 。该方法调用 IDispatch::GetIDsOfNames 以及IDispatch::Invoke来调用COM Automation 对象里的方法和属性。参考Binding for Of原创 2005-03-29 18:39:00 · 885 阅读 · 0 评论 -
利用RSS与搜索引擎打造个人的信息资讯中心
告别在各大网站的奔波之苦:) 首先,说说怎么利用搜索引擎!其实以后的新闻中心一定是搜索引擎!大家都知道GOOGLE和百度都提供关键词订阅服务! 百度新闻订阅 http://newsalert.baidu.com/na?cmd=0 在"创建一个新闻订阅"中输入自定义的关键字和邮箱地址并选择发送时间,点击"创建订阅"。注意百度新闻最多能订阅5组关键字,多个关键字之间用空格分原创 2005-08-14 01:38:00 · 920 阅读 · 0 评论 -
用JAVA打造自己的QQ(六)--源码篇客户端
客户端共包含10个文件,对应9个窗体和一个自定义的FriendsInfo类,用于保存从服务端获得的一些好友和陌生人信息.客户端的编写过程即是我学习JAVA SWING的使用过程,所以代码都是些基本的对SWING组件的设置更新,下面便是我的实现:登录界面实现FMLOGIN.JAVApackage client;import java.awt.*;import java.awt.event原创 2005-07-16 17:27:00 · 5617 阅读 · 1 评论 -
用JAVA打造自己的QQ--源代码客户端(八)
注册窗体的代码fmRegister实现如下:package client;import javax.swing.*;import java.awt.*;import com.borland.jbcl.layout.*;import java.awt.event.*;import java.net.*;import java.net.Socket;import java.io.*;import ja原创 2005-07-16 17:46:00 · 6581 阅读 · 18 评论 -
用JAVA打造自己的QQ(七)--源码篇客户端(主界面)
主界面模仿了QQ的界面,通过树控件TREEVIEW可以自由地显示好友名单,在TREEVIEW上添加上下文菜单方便对好友的管理,如查看信息,删除好友,收发信息等,代码如下:FMMAIN.JAVA:package client;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import javax.原创 2005-07-16 17:38:00 · 3681 阅读 · 5 评论 -
用JAVA打造自己的QQ(五)---源码篇之服务端
Java即时通信系统的服务器端包括JICQ服务器程序和数据库服务器;客户端为JICQ即时通信工具软件。 服务器端JICQ主要由监听线程、线程调度池、消息处理线程组成。首先由监听线程监听,并启动线程池,当有消息来到时,从线程池取得线程,并将消息交由其处理,由消息处理线程处理用户注册、登陆、注销、添加删除好友等请求,将处理结果写入数据库,最后向客户端返回消息,消息处理线程在完成工作之后,再重新回到线程原创 2005-07-10 01:11:00 · 2879 阅读 · 0 评论 -
用JAVA打造自己的QQ(五)--源码篇服务器端
package Server;import java.io.*;import java.net.*;import java.sql.*;import java.util.Vector;class ServerThread extends Thread{//继承线程 private Socket socket;//定义套接口 private BufferedReader in;//定义输入流原创 2005-07-10 01:19:00 · 2484 阅读 · 1 评论 -
劫持数据库,实现跨站攻击
我们都知道,所谓跨站攻击,就是程序对用户输入的数据缺少充分过滤,当网站浏览者浏览信息时,被输入的恶意脚本就会被执行,这可能是插入一端文字,可能是偷取浏览者cookie信息的java脚本,更有甚着是一段利用IE漏洞的网页木马代码。这种攻击方法与得到webshell后插入木马代码要实现起来要简单容易的多,当然这种方法也有它的缺点,这个我们一会讨论。先说实现跨站攻击的前提条件,当然是网页中要存在输入信息原创 2005-04-27 22:03:00 · 621 阅读 · 0 评论 -
使用Java Servlet动态生成图片
在Web应用中,经常需要动态生成图片,比如实时股市行情,各种统计图等等,这种情况下,图片只能在服务器内存中动态生成并发送给用户,然后在浏览器中显示出来。 本质上,浏览器向服务器请求静态图片如jpeg时,服务器返回的仍然是标准的http响应,只不过http头的contentType不是text/html,而是image/jpeg而已,因此,我们在Servlet中只要设置好contentType,原创 2005-04-27 22:37:00 · 538 阅读 · 0 评论 -
浅析Java与C#的事件处理机制
启航 yeskyJava与C#的事件处理都是实现了事件源-事件响应者机制,但又不完全相同。Java实现的是一种事件源与事件响应者两级实体对象方式,这里的事件响应者也是事件监听者,而C#实现的是一种事件源-代理-事件响应者三级实体对象方式。下面就这两种方式来具体说明。 Java事件处理 从概念上讲,事件是一种在"源对象"和"监听者对象"之间,某种状态发生变化的传递机制。事件有许多不同的用途,例如原创 2005-04-30 21:56:00 · 709 阅读 · 0 评论