- 博客(417)
- 资源 (143)
- 收藏
- 关注

原创 欢迎访问我的新博客
这几天不知怎么回事,接连好几天居然都不能转帖文章,写几句话也不行,总是报告Text错误,思量着是不是有容量限制,于是申请了一个新的“博客":)
2007-11-23 20:12:00
817
原创 最大公约最小公倍数算法
1.最大公约数: 使用欧几里德算法(辗转相除法),其原理依赖定理:gcd(a,b) = gcd(b,a mod b) 证明:令a>b(类似可证a 必要条件:假设d是a,b的一个公约数,则有d|a,d|b,而r = a - kb,因此d|r。故d是(b,a mod b)的公约数; 充分条件:假设d是(b,a mod b)的公约数,则d|b,d|r,又因a = kb + r,故
2009-01-08 08:46:00
2463
原创 按位异或运算符^
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例如:10100001^00010001=101100000^0=0,0^1=1 0异或任何数=任何数1^0=1,1^1=0 1异或任何数-任何数取反任何数异或自己=把自己置0(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与000
2009-01-07 15:15:00
84875
2
原创 如何在C#中使用 Win32和其他库
[转载]如何在C#中使用 Win32和其他库作者:Microsoft(郁闷) 这一次我们将深入探讨如何在 C# 中使用 Win32 和其他现有库。 C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而
2007-12-11 10:45:00
1427
原创 Visual C#中使用线程
使用线程Greg EwingClarity Consulting Inc.2002 年 3 月 摘要:本文论述了各种模式的线程(单线程、单元线程和自由线程)以及每种模式的使用方法。同时,还提供了一个使用线程的 C# 语言代码示例,以帮助您编写使用线程的应用程序。本文还讨论了多线程代码中的一些重要问题。 下载(英文)示例文件。(请注意,在示例文件中,程序员的注释使用的是英文,
2007-12-11 09:43:00
2253
1
原创 经典的讲故事谈.NET委托: 一个C#睡前故事
[转载]经典的讲故事谈.NET委托: 一个C#睡前故事信息来源:pconline英文版原作者:Chris Sells(www.sellsbrothers.com)翻译:袁晓辉(www.farproc.com http://blog.csdn.net/uoyevoli)紧耦合从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他
2007-12-11 09:35:00
918
原创 Visual Studio 2005常用插件
原文:http://dotnet.csdn.net/Special/VS2005Plus/index.htm Visual Studio 2005 为我们带来了新的编程体验,提供了从需求分析到最终测试整个软件生命开发周期的解决方案。 但是,我们也可以看到一直以来围绕着Visual Studio有许多各种功能的插件,或是为Visual Studio 增加了新的功能或者对原有功能进行了优化,已经
2007-11-20 08:33:00
895
原创 在C#程序中使用系统热键
原文:http://blog.csdn.net/junglesong/archive/2007/08/17/1747822.aspx1.首先引入System.Runtime.InteropServicesusing System.Runtime.InteropServices; 2.在类内部声明两个API函数,它们的位置和类的成员变量等同.[System.Runtime.InteropServ
2007-11-20 08:21:00
793
转载 微软过桥问题的图论解法
微软的过桥问题说的是4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过, 4个人的过桥速度分别为1分钟、2分钟、5分钟、10分钟,试问最少需要多长时间4人才可以全部通过小桥?这个问题如果用图论来建模的话,就可以以4个人在桥两端的状态来作为节点来构造一个有向图,如下图所示,以已经过桥了的人的状态作为图的节点,初始时没有人过桥,所以以空表示,第一轮有两个人
2007-11-19 12:47:00
1291
原创 WINDOWS键盘事件的挂钩监控原理
WINDOWS的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接 各种反调函数(HOOK)的功能。这种挂钩函数(HOOK)类似扩充中断驱动程序,挂钩上 可以挂接多个反调函数构成一个挂接函数链。系统产生的各种消息首先被送到各种 挂接函数,挂接函数根据各自的功能对消息进行监视、修改和控制等,然后交还控 制权或将消息传递给下一个挂接函数以致最终达到窗口函数。WINDOW系统的这种反 调函
2007-11-19 11:25:00
1199
原创 Web Spider提取编码方法总结(二)
4,通过字节流分析检测编码 UTF8判断部分的C#代码: int utf8_probability(byte[] rawtext) { int score = 0; int i, rawtextlen = 0; int goodbytes = 0, asciibytes = 0; // Maybe also use UTF8 Byte Order Mark: EF
2007-11-17 14:15:00
811
原创 Web Spider提取编码方法总结 (一)
1,通过分析Header提取编码。 WebRequest webRequest = WebRequest.Create(url) ; HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse() ; Regex reg_charset = new Regex(@"charset/b/s*=/s*(?[^""]*)")
2007-11-17 12:43:00
1293
原创 消息钩子函数
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,
2007-11-16 13:06:00
967
原创 HOOK函数
这种函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。当然,这么做也是需要付出一定的代价的。由于多了这么一道处理过程,系统性能会受到一定的影响,所以大家在必要的时候才使用“钩子”,并在使用完毕及时将其删除。首先让我们看看HOOK函数是怎么安装、调用和删除的。应用程序通常是调用SetWindowsHookEx()
2007-11-16 08:22:00
1037
原创 Window 消息大全使用详解
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的:typeTMsg = p
2007-11-15 12:29:00
762
原创 SendMessage函数完全使用手册
首先 我们了解一下Windows的消息机制。Windows是一个消息驱动式系统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进行通信的手段。举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序的时候,如果用户单击“文件菜单“里的“新建“命令, 这个动作将被Windows所捕捉,Windows经过分析得知这个动作应该由我们打开的记事本程序所来处
2007-11-15 08:28:00
1266
原创 C#中的一些技巧
一:构造函数的复用 如果继承自某类可以使用关键字base: class baseclass { .......//其他类成员,方法属性等 string _str; baseclass(){} //无参数的构造函数,在此忽略成员函数的初始化 baseclass(string str):this() /
2007-11-14 21:29:00
776
原创 使用delegate类型设计自定义事件
在C#编程中,除了Method和Property,任何Class都可以有自己的事件(Event)。定义和使用自定义事件的步骤如下:(1)在Class之外定义一个delegate类型,用于确定事件程序的接口 (2)在Class内部,声明一个public event(也可以继承event实现自定义事件)变量,类型为上一步骤定义的delegate类型 (3)在某个Method或者Property内部
2007-11-14 21:14:00
921
转载 if else之现代设计方法
传统思维习惯分析 为什么会业务逻辑层使用if else,其实使用者的目的也是为了重用,但是这是面向过程编程的重用,程序员只看到代码重用,因为他看到if else几种情况下大部分代码都是重复的,只有个别不同,因此使用if else可以避免重复代码,并且认为这是模板Template模式。 他范的错误是:程序员只从代码运行顺序这个方向来看待它的代码,这种思维类似水管或串行电路,水沿着水管流动(代码运
2007-11-13 21:56:00
1467
原创 C++多态技术
C++多态技术 《程序员》2004/02 摘要 本文介绍了C++中的各种多态性,重点阐述了面向对象的动态多态和基于模板的静态多态,并初探两种技术的结合使用。 关键词 函数多态 宏
2007-11-13 20:09:00
877
原创 C#编码标准--编码习惯
1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。4. 一个方法的代码长度最好不要超过25行。5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。6. 每行代码不要超过80个字符。7. 不要手工的修改机器产生的代码。a) 如果需
2007-11-12 15:58:00
549
原创 何时使用委托而不使用接口(C# 编程指南)
何时使用委托而不使用接口(C# 编程指南)(原文) 委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现;可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?在以下情况中使用委托:
2007-11-12 14:28:00
820
原创 Martin Fowler:分析模式-数量模式
Quantity数量Represent dimensioned values with both their amount and their unit 由数字和相关单位组成,表示有单位的值There are many cases where we want computers to represent dimensioned quantities: values such
2007-11-12 08:41:00
2511
原创 如何最大限度提高.NET的性能 (续)
其实随着硬件的发展,现在硬件的速度已经远远满足大多数人的的需要了,甚至有些人提出算法在现在软件开发中越来越不起作用了。记得以前看过麻省的数据结构视频,讲课的教授就问过一个问题(我记得不大清楚了,他的大概意思就是这样):既然算法现在变得不重要了,为什么我们还要在这里研究呢?他给的答案就是“SPEED” ,我们追求速度就像赛车手追求速度一样! 现在很多系统的开发都不会把速度放在第一位,其他如
2007-11-10 18:34:00
693
原创 如何最大限度提高.NET的性能
1)避免使用ArrayList。 因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。.net 2.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。2)使用HashTale代替其他字典集合类型(如StringD
2007-11-10 18:33:00
1193
原创 WebBrowser控件应用:弹出新窗体和关闭窗口
Open新页面要处理的:1:>; 2: onclick=’window.open’ ; 3:引用js文件 ;4:ClientScript.RegisterStartupScript();等。5:还有要实现在打开的页面里能用window.opener对象Close要处理的:1:onclick=’window.close ; 2:引用js文件 ;3:Clien
2007-11-10 17:55:00
3468
1
原创 C#委托,事件
什么是委托? 委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数。 每一个委托都有自己的签名,例如:Delegate int SomeDelegate(string s, bool b);是一个委托申明,在这里,提及的签名,就是说SomeDelega
2007-11-09 11:29:00
712
原创 数组(array)与ArrayList的主要区别
1)精辟阐述:可以将ArrayList想象成一种“会自动扩增容量的array”。2)array([]):最高效;但是其容量固定且无法动态改变;ArrayList:容量可动态增长;但牺牲效率;3)建议:基于效率和类型检验,应尽可能使用array,无法确定数组大小时才使用ArrayList!不过当你试着解决更一般化的问题时,array的功能就可能过于受限。4)java中一切皆对象,array也是对象。
2007-11-09 08:52:00
1455
原创 C++类模板的三种特化
C++类模板的三种特化 By SmartPtr(http://www.cppblog.com/SmartPtr/) 说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。 这里用一个简单的例子来说明这三种情况:
2007-11-08 15:39:00
16398
原创 Windows消息机制要点
Windows消息机制要点 By SmartPtr(http://www.cppblog.com/SmartPtr/) 1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。
2007-11-08 15:33:00
1246
原创 ACE的内存分配介绍
一、内存分配器相关ACE_Allocator基类ACE_New_Allocator : public ACE_Allocator传统的new和delete的动态内存分配器,主要方法:malloc 分配一定大小的内存,实质就是new char[nbytes];calloc 同上,但带内存初始化free 释放指定的内存块,实质就是delete[] ptr;ACE_Static_Allocato
2007-11-08 15:23:00
1482
原创 使用反射动态调用类成员
使用反射动态调用类成员,需要Type类的一个方法:InvokeMember。对该方法的声明如下(摘抄于MSDN):public object InvokeMember( string name, BindingFlags invokeAttr, Binder binder, object target, object[] args);参数na
2007-11-07 15:42:00
563
原创 国外C#开源项目
AspectSharp - Aspect# (pronunced as AspectSharp) is a free AOP ( Aspect Oriented Programming ) framework for the .NET Framework, it uses Dynamic Proxies and XML configuration files as basis.
2007-11-07 15:12:00
954
原创 DotNet之优秀工具
最佳 .NET 图书暨培训软件 大奖获得者: Advanced .NET Remoting, Apress (www.apress.com) 亚军: Applied Microsoft .NET Framework Programming, Microsoft Press (www.microsoft.com)季军: Programming Windows with C#, Microsoft P
2007-11-07 14:45:00
595
原创 C++编程人员容易犯的10个C#错误
我们知道,C#的语法与C++非常相似,实现从C++向C#的转变,其困难不在于语言本身,而在于熟悉.NET的可管理环境和对.NET框架的理解。尽管C#与C++在语法上的变化是很小的,几乎不会对我们有什么影响,但有些变化却足以使一些粗心的C++编程人员时刻铭记在心。在本篇文章中我们将讨论C++编程人员最容易犯的十个错误。陷阱1: 没有明确的结束方法几乎可以完全肯定地说,对于大多数C++编程人员
2007-11-07 13:13:00
548
原创 三种操作数据库的途径
操作数据库可以分这么三种,第一种,直接写硬SQL代码,不要参数,第二种,直接写硬代码,要参数,第三种,调用存储过程。我们以一个登录模块为例,现在页面有两文本框,一按纽,实现验证用户名密码的功能。第一种方法主要代码如下: SqlConnection conn =new SqlConnection
2007-11-07 12:59:00
773
原创 const和static readonly的区别
const1. 在编译期间解析的常量2. 必须在声明就初始化3. 既可用来修饰类中的成员,也可修饰函数体内的局部变量。static readonly1. 在运行期间解析的常量,2. 既可以在声明时初始化也可以在构造器中初始化。3. 只可以用于修饰类中的成员例子:1. static readonly MyC
2007-11-05 15:02:00
574
原创 property和attribute的区别
对于property和attribute这两个名词都叫“属性”的问题,来源于国内it书籍翻译界的疏忽。其实它们来源于两个不同的领域,attribute属于OOA/OOD的概念,而property属于编程语言中的概念。下面我们来说明它们的异同。AttributeAttributes是Microsoft .NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在
2007-11-05 13:05:00
1235
原创 正则表达式--递归匹配与非贪婪匹配
1. 表达式的递归匹配 有时候,我们需要用正则表达式来分析一个计算式中的括号配对情况。比如,使用表达式 "/( [^)]* /)" 或者 "/( .*? /)" 可以匹配一对小括号。但是如果括号 内还嵌有一层括号的话 ,如 "( ( ) )",则这种写法将不能够匹配正确,得到的结果是 "( ( )" 。类似情况的还有 HTML 中支持嵌套的标签如 " " 等。本节将要讨论的是,想办法把有
2007-11-03 13:57:00
1165
原创 C#中正则表达式的分组构造
.NET Framework 开发人员指南分组构造原文地址 分组构造描述了正则表达式的子表达式,通常用于捕获输入字符串的子字符串。下表描述了正则表达式分组构造。 分组构造 说明
2007-11-03 12:57:00
2038
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.zip
2007-06-19
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z05
2007-06-19
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z06
2007-06-19
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z04
2007-06-19
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z03
2007-06-19
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z02
2007-06-19
Microsoft.Press.Microsoft.SQL.Server.2005.Applied.Techniques.Step.by.Step.z01
2007-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人