下载winsockfix软件,修复即可。 

不用软件手动修复方法如下:   

第 1 步:删除损坏的注册表项

  1.  单击“开始”,然后单击“运行”。
  2. 在“打开”框中,键入“regedit”,然后单击“确定”。 
  3. 在注册表编辑器中,找到以下注册表项,右键单击每一项,然后单击“删除”:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2  
  4. 当提示您确认删除时,单击“是”。
    注意:删除 Winsock 注册表项后请重新启动计算机。这样做可以让 Windows XP 操作系统为这两个注册表项创建新的 shell 条目。如果在删除 Winsock 注册表项后未重新启动计算机,则下一步将无法正常进行。

第 2 步:安装 TCP/IP

  1.  右键单击网络连接,然后单击“属性”。 
  2. 单击“安装”。 
  3. 单击“协议”,然后单击“添加”。  
  4. 单击“从磁盘安装”。  
  5. 键入 C:\Windows\inf,然后单击“确定”。  
  6. 在可用协议列表中,单击“Internet 协议 (TCP/IP)”,然后单击“确定”。 
  7. 重新启动计算机。 

 

ASP.NET MVC 2 RC 发布


Sun, 20 Dec 2009 10:16:53 GMT | Permanent LinkComments[0]Visit[0]

ASP.NET MVC是既ASP.NET WebForms之后,微软推出的Front Controller式的Web开发模型,它弥补了前者对HTML控制能力不足,单元测试较为困难等缺点。更重要的是,ASP.NET MVC基于MS-PL发布,是一个真正的开源框架——且没有任何平台限制,也就是说,您可以在mono下使用或开发ASP.NET MVC的相关项目。
 

其实微软在今年3月的MIX大会上发布ASP.NET MVC RTM的时候,就已经公布了部分ASP.NET MVC 2的计划,并且在官方代码源中包含的MvcFutures项目中实现了V2的部分功能雏形。在沉寂了4个多月之后,现在微软终于发布了ASP.NET MVC 2的Preview 1版本,并在论坛中向社区征求反馈意见和建议。令人放心的是,ASP.NET MVC 2 Preview 1能够与ASP.NET MVC 1.0 RTM共存,不会影响后者的正常使用。

下载:ASP.NET MVC 2 RC

 

jQuery1.4 Alpha 2发布


Sun, 20 Dec 2009 10:16:22 GMT | Permanent LinkComments[0]Visit[0]

作为一个jQuery的发烧友,对于jQuery1.4版本的新闻十分的关心,刚刚收到消息,jQuery1.4α2版本已经发布了。下面是我从jQuery官方博客获得的消息: jQuery1.4 Alpha 2已经发布啦!这是jQuery1.4的第二个Alpha测试版本(第一版的发布链接),这个版本的代码是稳定的(并且在所有市面上流行的浏览器中通过了测试) 获取jQuery1.4 α2版本:

未压缩版本:http://code.jquery.com/jquery-1.4a2.js
压缩版本:http://code.jquery.com/jquery-1.4a2.min.js

注意:如果您使用jQuery1.4 Alpha2版本,并且遇到了bug,请使用未压缩版本,它可以更加简单的找到错误的代码所在的位置。 目前所知道1.4版本的功能上相对版本 1.3.2进行了一些扩展,包括:

1.live 方法被大幅度检修,现在支持提交,更改,mouseenter,mouseleave,焦点,模糊在所有浏览器活动。现在还支持背景和数据。
2.append, prepend 方法优化
3.add has been adjusted to always return elements in document order.
4.find, empty, remove, addClass, removeClass, hasClass, attr, and css 等方法进行了重构,大大的优化

 

方法一: 点击菜单命令 “项目/属性”,弹出项目属性对话框;或者在解决方案视图或类视图中,右击项目名称,选“属性”,弹出项目属性对话框;在弹出对话框的活动配置中,选择“配置属性/链接器/输入/附加依赖项”,即可输入待加入的lib库文件,添加完毕点击“应用”或“确定”按钮。如果要对所有的配置添加lib库文件,可先将活动配置切换为“所有配置”。 在“配置属性”---“连接器”---“常规”的“附件库目录”填上库所在的目录名,这个目录名最好是在工程文件夹中建一个专门放lib的文件夹。

方法二:用预处理命令
#pragma comment(lib,"libname.lib")
例如:#pragma comment(lib,"ws2_32.lib")

 

QQ五笔测试版1.0(79)


Sat, 05 Dec 2009 10:54:51 GMT | Permanent LinkComments[0]Visit[0]

腾讯什么都高啊,昨天泄漏出来的QQ五笔外部测试版,今天更新到了1.0(79),主要修改有:
   1. 修正Bug:“封IP”问题
   2. 修正Bug:全角不管是中文还是英文输~都变成了 ̄
   3. 加入功能:Shift+字母直接输出(高级设置,默认不开启)
   4. 加入功能:分号开头便捷输入(英文,数字,日期,股票,计算器)


 

接口的作用


Mon, 23 Nov 2009 00:13:33 GMT | Permanent LinkComments[0]Visit[0]

C#接口的作用是什么呢?首先我们来看看什么事实C#接口,C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含 方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举,当然 你这样想那是绝对绝对错误的,比尔盖茨的微软请的员工都是比盖茨还聪明的人,他们的C#能添这样的多足吗?!关于接口的作用,网上有一位就真的深入浅出给 我们做了很好理解的分析。

C#接口的作用解释实例:

  1. public interface IBark  
  2. {  
  3.     void Bark();  

再定义一个类,继承于IBark,并且必需实现其中的Bark()方法

  1. public class Dog:IBark  
  2. {  
  3.     public Dog()  
  4.     {}  
  5.     public void Bark()  
  6.     {  
  7.        Consol.write("汪汪");  
  8.      }  

然后,声明Dog的一个实例,并调用Bark()方法

  1. Dog 旺财=new Dog();  
  2. 旺财.Bark(); 

试想一样,若是想调用Bark()方法,只需要在Dog()中声明这样的一个方法不就行了吗,干什么还要用接口呢.因为接口中并没有Bark()具体实现.真的实现还是要在Dog()中.那么使用接口不是多此一举吗?

还有人是这样说的:从接口的定义方面来说,接口其实就是类和类之间的一种协定,一种约束.还拿上面的例子来说.所有继承了IBark接口的类中必需 实现Bark()方法.那么从用户(使用类的用户)的角度来说,如果他知道了某个类是继承于IBark接口,那么他就可以放心大胆的调用Bark()方 法,而不用管Bark()方法具体是如何实现的.比如,我们另外写了一个类.

  1. public class Cat:IBark  
  2. {  
  3.    public Cat()  
  4.    {}  
  5.    public void Bark()  
  6.    {  
  7.       Consol.write("喵喵");  
  8.    }  

当用户用到Cat类或是Dog类的时候,知道他们继承于IBark,那么不用管类里的具体实现,而就可以直接调用Bark()方法,因为这两个类中肯定有关于Bark()方法的具体实现.

如果我们从设计的角度来看.一个项目中用若干个类需要去编写,由于这些类比较复杂,工作量比较大,这样每个类就需要占用一个工作人员进行编写.比如 A程序员去定Dog类,B程序员去写Cat类.这两个类本来没什么联系的,可是由于用户需要他们都实现一个关于"叫"的方法.这就要对他们进行一种约束. 让他们都继承于IBark接口,目的是方便统一管理.另一个是方便调用.当然了,不使用接口一样可以达到目的.只不过这样的话,这种约束就不那么明显,如 果这样类还有Duck类等等,比较多的时候难免有人会漏掉这样方法.所以说还是通过接口更可靠一些,约束力更强一些.

 

打开SQL Server Profiler,运行一个新的trace时,出现错误:
SQL Server Profiler
---------------------------
Only TrueType fonts are supported. This is not a TrueType font.

解决方法:
在工具>选项中将字体改为常用字体就行了。

 

javascript keyCode大全


Tue, 10 Nov 2009 17:06:50 GMT | Permanent LinkComments[0]Visit[0]

keycode    8 = BackSpace BackSpace
keycode    9 = Tab Tab
keycode   12 = Clear
keycode   13 = Enter
keycode   16 = Shift_L
keycode   17 = Control_L
keycode   18 = Alt_L
keycode   19 = Pause
keycode   20 = Caps_Lock
keycode   27 = Escape Escape
keycode   32 = space space
keycode   33 = Prior
keycode   34 = Next
keycode   35 = End
keycode   36 = Home
keycode   37 = Left
keycode   38 = Up
keycode   39 = Right
keycode   40 = Down
keycode   41 = Select
keycode   42 = Print
keycode   43 = Execute
keycode   45 = Insert
keycode   46 = Delete
keycode   47 = Help
keycode   48 = 0 equal braceright
keycode   49 = 1 exclam onesuperior
keycode   50 = 2 quotedbl twosuperior
keycode   51 = 3 section threesuperior
keycode   52 = 4 dollar
keycode   53 = 5 percent
keycode   54 = 6 ampersand
keycode   55 = 7 slash braceleft
keycode   56 = 8 parenleft bracketleft
keycode   57 = 9 parenright bracketright
keycode   65 = a A
keycode   66 = b B
keycode   67 = c C
keycode   68 = d D
keycode   69 = e E EuroSign
keycode   70 = f F
keycode   71 = g G
keycode   72 = h H
keycode   73 = i I
keycode   74 = j J
keycode   75 = k K
keycode   76 = l L
keycode   77 = m M mu
keycode   78 = n N
keycode   79 = o O
keycode   80 = p P
keycode   81 = q Q at
keycode   82 = r R
keycode   83 = s S
keycode   84 = t T
keycode   85 = u U
keycode   86 = v V
keycode   87 = w W
keycode   88 = x X
keycode   89 = y Y
keycode   90 = z Z
keycode   96 = KP_0 KP_0
keycode   97 = KP_1 KP_1
keycode   98 = KP_2 KP_2
keycode   99 = KP_3 KP_3
keycode 100 = KP_4 KP_4
keycode 101 = KP_5 KP_5
keycode 102 = KP_6 KP_6
keycode 103 = KP_7 KP_7
keycode 104 = KP_8 KP_8
keycode 105 = KP_9 KP_9
keycode 106 = KP_Multiply KP_Multiply
keycode 107 = KP_Add KP_Add
keycode 108 = KP_Separator KP_Separator
keycode 109 = KP_Subtract KP_Subtract
keycode 110 = KP_Decimal KP_Decimal
keycode 111 = KP_Divide KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 187 = acute grave
keycode 188 = comma semicolon
keycode 189 = minus underscore
keycode 190 = period colon
keycode 192 = numbersign apostrophe
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = copyright registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 220 = less greater bar
keycode 221 = plus asterisk asciitilde
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch
 
使用
<script language="javascript">
     function keyevent(){
     if(event.keyCode==13)
     alert("#$%#%#^^%");
     }
     document.onkeydown = keyevent;
</script>

以上没有提及的可以自己测试出代码,把上下JS加入页面中测试
<script language="javascript" type="text/javascript">
document.onkeydown=function()
{
  alert(event.keyCode);
}

 

BitBlt


Mon, 09 Nov 2009 22:36:32 GMT | Permanent LinkComments[0]Visit[0]

函数功能:该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。

  函数原型:BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);

  参数: 

  hdcDest:指向目标设备环境的句柄。 

  nXDest:指定目标矩形区域左上角的X轴逻辑坐标。 

  nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。 

  nWidth:指定源和目标矩形区域的逻辑宽度。

  nHeight:指定源和目标矩形区域的逻辑高度。 

  hdcSrc:指向源设备环境的句柄。 

  nXSrc:指定源矩形区域左上角的X轴逻辑坐标。 

  nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。 

  dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。  

  下面列出了一些常见的光栅操作代码: 

  BLACKNESS:表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。 

  DSTINVERT:表示使目标矩形区域颜色取反。 

  MERGECOPY:表示使用布尔型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。

  MERGEPAINT:通过使用布尔型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。 

  NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。 

  NOTSRCERASE:使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。 

  PATCOPY:将特定的模式拷贝到目标位图上。 

  PATPAINT:通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。 

  PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。 

  SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。 

  SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。

  SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。 

  SRCINVERT:通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。 

  SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。

  WHITENESS:使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。 

  返回值:如果函数成功,那么返回值非零;如果函数失败,则返回值为零。

  Windows NT:若想获取更多错误信息,请调用GetLastError函数。 

  备注:如果在源设备环境中可以实行旋转或剪切变换,那么函数BitBlt返回一个错误。如果存在其他变换(并且目标设备环境中匹配变换无效),那么目标设备环境中的矩形区域将在需要时进行拉伸、压缩或旋转。 

  如果源和目标设备环境的颜色格式不匹配,那么BitBlt函数将源场景的颜色格式转换成能与目标格式匹配的格式。当正在记录一个增强型图元文件时,如果源设备环境标识为一个增强型图元文件设备环境,那么会出现错误。如果源和目标设备环境代表不同的设备,那么BitBlt函数返回错误。

  Windows CE:在Windows CE 1.0版中,参数dwRop只可以指定为下列值:SRCCOPY、SRCAND、SRCPAINT、SRCINVERT。在Windows CE 2.0版中,参数dwRop可以是任何光栅操作代码值。 

  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。

 

StretchDIBits


Mon, 09 Nov 2009 21:52:16 GMT | Permanent LinkComments[0]Visit[0]

函数功能:该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。 

  函数原型:int StretchDIBits(HDC hdc, int XDest , int YDest , int nDestWidth, int nDestHeight, int XSrc, int Ysrc, int nSrcWidth, int nSrcHeight, CONST VOID *lpBits, CONST BITMAPINFO * lpBitsInfo, UINT iUsage, DWORD dwRop); 

  参数: 

  hdc:指向目标设备环境的句柄。 

  XDest:指定目标矩形左上角位置的X轴坐标,按逻辑单位来表示坐标。 

  YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。 

  nDestWidth:指定目标矩形的宽度。 

  nDestHeight:指定目标矩形的高度。 

  XSrc:指定DIB中源矩形(左上角)的X轴坐标,坐标以像素点表示。  

  YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素点表示。 

  nSrcWidth:按像素点指定DIB中源矩形的宽度。 

  nSrcHeight:按像素点指定DIB中源矩形的高度。 

  lpBits:指向DIB位的指针,这些位的值按字节类型数组存储,有关更多的信息,参考下面的备注一节。 

  lpBitsInfo:指向BITMAPINFO结构的指针,该结构包含有关DIB方面的信息。  

  iUsage:表示是否提供了BITMAPINFO结构中的成员bmiColors,如果提供了,那么该bmiColors是否包含了明确的RGB值或索引。参数iUsage必须取下列值,这些值的含义如下:  

  DIB_PAL_COLOR:表示该数组包含对源设备环境的逻辑调色板进行索引的16位索引值。  

  DIB_RGB_COLORS:表示该颜色表包含原义的KGB值,若想了解更多的信息,请参考下面备注一节。 

  dwRop:指定源像素点、目标设备环境的当前刷子和目标像素点是如何组合形成新的图像。若想了解更多信息,请参考下面的备注一节。 

  返回值:如果函数执行成功,那么返回值是拷贝的扫描线数目,如果函数执行失败,那么返回值是GDI_CRROR。  

  Windows NT:若想获取更多错误信息,请调用GetLastError函数。 

  Windows 98、Windows NT 5.0及以后版本:如果设备驱动程序不支持传送给StretchDIBits的JPEG文件格式的图像,则该函数将失败,并返回GEI_ERROR。 

  备注:自底向上的DIB的起始点为左下角,自顶向下DIB的起始点为左上角。 

  如果nSrcWidth和nDestWidth参数的符号不同。或是nSrcHeight和nDesHeight参数的符号不同。那么函数StretchDIBits将创建位图的镜像。如果NsrcWidth和NdestWidth符号不同,那么函数将沿着X轴创建位图镜像。如果NsrcHeight和NdestHeight符号不同,那么函数将沿着Y轴创建位图镜像。 

  对于Windows 98、Windows NT 5.0及以后版本:该函数允许将JPEG图像用作源图像,每个参数如何使用其实仍是一样的。 

  如果BITMAPINFOHEADER结构中的成员biCompression为BI_JPEG,那么参数lpBits指向的是一个包含JPEG图像的缓冲区。BITMAPINFOHEADER结构中的biSizeImage成员指定了该缓冲区的大小。参数iUsage必须设为DIB_RGB_COLORS。dwRop必须设为SRCCOPY。  

  如果BITMAPV4HEADER结构中的成员bV 4Compression为BI_JPEG,那么参数lpBits指向的是一个包含JPEG图像的缓冲区。BITMPV4HEADER结构中的bV4SizeImage成员指定了该缓冲区的大小。参数iUsage必须设为DIB_RGB_COLORS。参数dwRop必须设为SRCCOPY。  

  如果BITMAPV5HEADER结构中的成员bV 5Compression为BI_JPEG,那么参数lpBits指向的是一个包含JPEG图像的缓冲区。BITMPV5HEADER结构中的bV5SizeImage成员指定了该缓冲区的大小。参数iUsage必须设为DIB_RGB_COLORS。dwRop必须设为SRCCOPY。 

  为确保打印时可以有正确的图元文件假脱机操作。应用程序应在调用StretchDIBits函数之前调用CHECKJPEGFORMAT转义符,以确认打印机识别JPEG图像。  

  ICM:执行颜色管理。如果指定的BITMAPINFO结构中的bmiHeader不包含BITMAPV4HEADER或BITMAPV5HEADER,那么当前设备环境的颜色配置(profile)被用作源颜色配置(profile)。如果没有颜色档案,那么就使用RGB。如果指定的BITMAPINFO结构中的成员bmiHeader包含了BITMAPV4HEADER或BITMAPV5HEADER,那么将把位图标头中指定的颜色配置(profile)用作源颜色配置。 

  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h:库文件:gdi32.lib。