自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 Visual Studio 更改模板

以更改class模板为例模板安装位置在VS安装路径\Common7\IDE\ItemTemplates\CSharp\Code\1033注:Common7\IDE\ItemTemplates是文件模板,同理Common7\IDE\ProjectTemplates是工程模板在此路径下是压缩包,包里一般有两个文件,一个是模板(class.cs),另一个是模板控制文件(class.vst

2012-03-30 10:57:48 750

原创 [LINQ] IEnumerable接口 与 Enumerable扩展

定义public interface System.Collections.IEnumerablepublic interface System.Collections.IEnumeratorpublic static class EnumerableIEnu

2011-09-06 22:17:16 536

原创 [LINQ] IQueryable接口 vs. Queryable扩展类

Definationpublic interface IQueryable : IEnumerablepublic static class QueryableIQueryable

2011-08-29 23:08:00 176

原创 i ^= (j ^= (i ^= j))的IL代码

IL_0000: nop IL_0001: ldc.i4.1 IL_0002: stloc.0 IL_0003: ldc.i4.5 IL_0004: stloc.1 IL_0005: ldloc.0 IL_0006: ldloc.1 IL

2011-08-27 21:19:18 1027

原创 运行时编译并执行C#代码

所用到的技术运行时编译反射示例代码 public static void Main(string[] args) { string test=@"int MAX_N = 100;int n = 10;int

2011-08-27 09:39:52 2487

原创 奶奶和孙子

今天回家路上,过天桥的时候看到一老一少,一位老奶奶和一位小伙子来奶奶拉着孙子(应该是吧)慢慢往前走,小伙子有先天性疾病,应该是没有什么智商的这就是难以割舍的亲情

2011-08-25 20:49:57 473

原创 开机时机箱电源风扇噪音很大的原因

开机时机箱电源风扇噪音很大的原因 电源的固定螺丝松动或者电源风扇的固定螺丝松动

2011-08-25 12:08:15 1002

原创 选中AVI文件Explorer崩溃的解决办法

regsvr32 /u shmedia.dll禁止选中AVI文件时进行预览

2011-08-24 22:05:18 690

原创 Android无法启动虚拟机

错误:PANIC: could not open C:\User\Administrator\.android/avd/XXX.ini原因:环境变量ANDROID_SDK_HOME未设置 错误:[2011-07-13 16:22:48 - Emulator] in

2011-08-23 22:03:25 2493

原创 Android开发环境搭建

安装JDK(Java Development Kit)安装Eclipse安装Android SDK and AVD Manager,并使用该程序获取SKD和Documentation安装ADT(Android Development Tools) Plug

2011-08-23 21:43:11 494

原创 当语言嫁给类库--.Net

写这篇文章的时候,就在想我是写成“当语言嫁给类库”还是写成“当类库嫁给语言”好呢? 稍微考虑了一下还是”当语言嫁给类库”吧,毕竟语言是更注重于优美的外边,而类库是跟注重要实践的。 第一次接触这种特性,也是在C#和.Net类库之间。这种设计确实给我一种奇怪的感觉,咋

2011-08-23 19:55:02 108

原创 Android SDK Manager 更新错误

Downloading Documentation for Android SDK, API 9, revision 1Installing Documentation for Android SDK, API 9, revision 1Unzip failed: C:\

2011-08-22 19:53:09 1819 1

原创 WebBrowser在非主线程的线程中创建

示例代码 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void b

2011-08-21 12:03:46 3248 1

原创 C# Excel 互操作

s

2011-06-20 23:11:00 307

原创 DisableThreadLibraryCalls

BOOL WINAPI DisableThreadLibraryCalls(  __in  HMODULE <a class="synParam" onclick="function onclick(){showTip(this)}">hModule);Disables the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notification

2010-03-28 15:20:00 4366

原创 关于切换当前窗口的问题

首先,有下面这个API:BOOL SetForegroundWindow(          HWND hWnd);按照字面意思来说,就是把某个窗口设置成当前窗口,但是这个函数往往达不到效果,而是使目标窗口在任务栏闪烁。 原因是微软认为在windows的多线程环境下,不应该强制切换输入焦点,所以在目标窗口和当前窗口不是用一线程时,是不会达到效果的。 如果非要实现该效果,可用

2010-03-18 10:30:00 1570

原创 TCP传输与流式套接字

自己写了一个聊天程序使用UDP发送消息的为了区分各种消息,设计了几种包的结构 后来添加传文件功能用TCP传送文件,结果发现,发送端发过去几个包,接收端可能只收到一个包后来到网上查发现,这叫粘包 再后来我明白其实TCP传输中根本没有包的概念,正如socket类型SOCK_STREAM所描述的那样传输过程就像一条溪流 你在发送端把东西依次放进去,让后在接收端依次把东

2010-03-15 20:57:00 669

原创 编程技巧

1. 习惯性的在抛出异常之前释放该释放的资源2. 如果有的地方可以用const,也可以不用,那还是加上const吧

2010-03-05 08:45:00 503

原创 所谓的运行时库

以前刚学C语言,书上说printf是运行时库里的函数 后来知道这叫C语言的标准,所有的操作系统都应该支持,是跨平台的 再后来以为这是操作系统实现的,我们只要调用就行了 再后来发现其实所谓的Run-Time-Library正如他的名字所描述的,其实就是一个dll,程序启动之后就对这个dll进行了映射,从而调用里面的函数 推广一下,操作系统的printf其实也都在系统的

2010-03-02 16:40:00 666

原创 SOCKET UDP recvfrom循环中退出策略选择分析

一般是有一个接受线程,接收线程里有一个循环recvfrom接收数据 退出线程时可以采用的方法: 1. 在其他线程里调用closesocket(),接收线程里会的recvfrom会返回10004错误,如果继续recvfrom会返回10038错误,通过检测这两个错误来进行退出 2. 在其他线程里给接收线程sendto一个特殊包,通过检测这个包判断是否需要退出 3. 使用

2010-03-02 16:19:00 3899 1

原创 SOCKET 端口状态变迁分析

端口的主要状态有如下几种:CLOSED, LISTENING, SYN_SENT, SYN_RCVD, ESTABLISHED, FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSE_WAIT, LAST_ACK状态变迁关系如下图:图1关于TIME_WAIT的说明:在TCP连接断开时,主动断开的一方在发送最后一个ACK后,就进入了TI

2010-03-02 09:20:00 1998

原创 SOCKET 网络字节序与主机字节序及其相互转换

主机字节序:整数在内存中保存的顺序 两种方式:Little endian 将低序字节存储在起始地址Big endian    将高序字节存储在起始地址 网络字节序:整数在网络中的发送顺序标准规定Big endian   首先发送高位字节字节序转换函数htonl: 转换long类型到网络字节序htons: 转换short类型到网络字

2010-03-01 16:34:00 5336

原创 SOCKET 常用数据类型分析

1. SOCKET (套接字) typedef    UINT_PTR        SOCKET;typedef    unsigned int    UINT_PTR; 4个字节 2. sockaddr, SOCKADDR, PSOCKADDR (网络地址,通用)typedef    sockaddr    SOCKADDR, *PSOCKADDR; s

2010-03-01 16:07:00 3641

原创 SOCKET 常用函数的返回值分析

socket()  accept()如果成功就返回生成的SOCKET,如果失败就返回INVALID_SOCKET.#define INVALID_SOCKET  (SOCKET)(~0)实际上是 0xFFFFFFFF 4bytes bind() listen() connect()如果成功就返回0,如果失败就返回SOCKET_ERROR,需要通过WSAGetLastEr

2010-03-01 16:00:00 16358

原创 SOCKET TCP 发送和接收示例代码

发送端代码: // socket used to send SOCKET sockSend = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // local address SOCKADDR_IN addrSend; addrSend.sin_addr.S_un.S_addr = inet_addr

2010-03-01 15:38:00 3143 2

原创 SOCKET UDP 发送和接受示例代码

头文件以及初始化:#include using namespace std;// socket header#include #pragma comment(lib, "Ws2_32.lib")void main(){ // recieve data from WSAStartup WSADATA wsaData; // initi

2010-03-01 15:20:00 5186

原创 批量文件重命名工具

程序作用:将一个文件夹中的文件重命名为:01 02 03 ... 选择路径对话框的使用: WCHAR szPath[MAX_PATH]; BROWSEINFO bi; bi.hwndOwner = m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = szPath; bi.lpsz

2010-02-28 16:24:00 1210

原创 所谓的写时复制-Dll的copy-on-write技术

dll刚加载的时候,用的都是最原始的映像 当对dll执行写操作的时候,写入的页面会被复制. 这种技术可以节省内存, 被称为 写时复制 别人的话: DLL作为内存映射文件映射到Process内存空间时,文件的每个节(4K)被映射为内存映射文件的一个页面(Window页面为4096),大家都知道,PE文件编译后,代码和全局变量都被放到不同的节里,Win98的保护机制是保

2010-02-09 21:54:00 1598

原创 TCP接受发送示例

服务端代码: #include #include #pragma comment(lib, "Ws2_32.lib")int main(){ WSADATA WSAData; int ret = WSAStartup(MAKEWORD(1, 1), &WSAData); if(ret) { printf("WSASt

2010-02-02 11:13:00 681

原创 查找某个进程拥有的所有窗口

#include #include #include #include #define WINDOW_TEXT_LENGTH 256BOOL CALLBACK EnumChildWindowCallBack(HWND hWnd, LPARAM lParam){ DWORD dwPid = 0; GetWindowThreadProcessId(h

2010-02-01 20:50:00 5028 2

原创 代码注入(提升当前进程权限,创建远程线程)

 #include #pragma comment(lib, "Advapi32.lib")#pragma comment(lib, "User32.lib")#define PATHNAME_LENGTH 256void EnableDebugPriv(){ HANDLE hToken; // 进程访问令牌的句柄 LUID l

2010-02-01 20:20:00 2288

原创 night

总是在夜里才能写点东西。 最近不玩魔兽世界了。生活确实充实了些。以前玩的时候也把游戏当做一种生活,一种追求。现在回头想想,有空玩那游戏还不如我自己的生活搞得好一点。其实人生就是一个RPG游戏,与其在魔兽世界中控制着一个虚拟的角色,还不如在现实生活中把自己的生活过好。但是生活却不像游戏那么简单。 ...  

2010-01-31 01:22:00 760 1

原创 扫描码与虚拟码

虚拟码是硬件无关的扫描码是硬件相关的 具体如下文所述: 当用户按下某个键时, 1.键盘会检测到这个动作,并通过键盘控制器把扫描码(scan code)传送到计算机;       键盘扫描码跟具体的硬件有关的,不同厂商对同一个键的扫描码有可能不同。 2.计算机接收到扫描码后,将其交给键盘驱动程序; 3.键盘驱动程序把这个扫描码转换为键盘虚拟码;       虚拟码与具

2010-01-31 00:46:00 1226

原创 夜深人静

我又一次在实验室熬到了夜里三点。这已经是第三天了。 我都不知道我自己做了什么。 我一直认为我经历过高中三年刻苦学习的生活,就不怕吃苦。但此时此刻,这却成了我放纵自己的理由。总是认为,现在玩一点没什么关系,只要关键时候想高三那样努力一下就可以了。可是我现在的另外一种感觉是,机会正在从我手中一点一点的流失。以前积累的优势,或者是天生的优势,正在被我一点一点的丢失。 如果哪一天我

2009-10-16 03:06:00 795 2

原创 SET QUOTED_IDENTIFIER ON

 SET QUOTED_IDENTIFIER ONSQL SERVER的联机丛书的解释:“当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。”先说说什么是标识符,举个例子,如果创建了一个叫做U

2008-12-07 18:52:00 673

原创 SET NOCOUNT ON的作用

当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。 如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。 

2008-12-07 18:44:00 456

原创 SUBSTRING LOWER CHARINDEX

1.    SUBSTRING(, ,             截取字符串        expression 指定要处理的字符串        start 指定起始位置        length 指定获取字串的长度2.    CHARINDEX(, [, ])            搜索字符串位置            expression           源

2008-12-07 18:34:00 496

俄罗斯方块C#源代码

使用C#编写的小游戏俄罗斯方块,可以作为绘图程序的示例代码

2011-08-19

局域网通讯传文件源码

局域网通讯源码,可以传文件 使用的是socket编写的 udp发消息 tcp传文件

2010-03-22

FTP客户端源代码C#

第一次上传资源。第一个工程是界面第二个工程是FTPClient类

2008-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除