自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C#调用Win32API 的高级用法:结构体内存布局 回调函数 指针参数以及数据类型映射

结构体内存布局: 许多受管辖的动态链接库函数期望你能够传递一个复杂的参数类型给函数,譬如一个用户定义的结构类型成员或者受管辖代码定义的一个类成员,这时你必须提供额外的信息格式化这个类型,以保持参数原有的布局和对齐。 C#提供了一个StructLayoutAttribute类,通过它你可以定义自己...

2020-02-18 12:48:03 87 0

原创 将Nginx封装为Windows服务并自启动

需要借助"Windows Service Wrapper"小工具,项目地址: https://github.com/kohsuke/winsw 下载地址:  http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.1...

2018-11-07 10:29:02 1748 1

原创 Sql 中Left Join Right Join和Inner Join最清楚的图解

一张图轻松搞定SQL中各种JOIN的区别

2018-10-25 20:30:40 918 0

转载 nginx+iis实现负载均衡

最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等。本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键...

2018-06-07 14:46:57 527 0

转载 JavaScript模板引擎Template.js使用详解

template.js 一款 JavaScript 模板引擎,简单,好用。提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果。https://github.com/aui/artTemplate1、特性(1)、性能卓越,执行速度通常是 Mu...

2018-06-07 09:51:54 1078 0

翻译 .Net 下未捕获异常的处理

在开始本文之前,让我们来看看.Net在什么情况下会产生未捕获异常。未捕获异常从定义上说就是结构化异常处理未能捕获的异常。通俗的讲就是发生在Try Catch块意外的异常。那么是不是我们在Main函数中加一个Try Catch 块就可以捕获全部未捕获异常了呢?答案是否定的。这里面有两种情况无法通过这...

2017-06-22 00:34:36 972 1

原创 SQL模糊查询的参数化

用参数化SQL语句进行模糊查找,一开始的使用方法不正确,摸索了好一会。 1、使用参数化SQL语句进行模糊查找的正确方法:      //定义sql语句       string sql = "SELECT StudentID,StudentNO,StudentName FROM S...

2014-11-05 09:03:03 5478 1

原创 JS中Object对象和String字符串的相互转换

利用原生JSON对象,将对象转为字符串

2014-10-29 21:40:43 13760 0

原创 部署的Web应用非80端口不能访问的解决办法

最近在服务器上发布了一个Web应用,在服务器上访问都是正常的,但是,在其他电脑上

2014-10-16 13:39:55 14123 0

转载 微信5.0的界面设计学

⒈软件的架构清晰,合理明了。 “微信”、“通讯录”“发现”、“我”这四个模块正好是对整个App各大功能的清晰划分。 ①聊天列表命名为“微信”符合认知,基本你如果用过,就不会对其产生歧义,如果用“消息”(陌陌)、“对话”(米聊)命名也可以,但用“微信”命名的好处就是在不产生歧义的同时,随着用户的...

2014-08-28 23:25:34 2678 0

转载 jQuery 取值、赋值的基本方法

/*获得TEXT.AREATEXT的值*/      var textval = $("#text_id").attr("value"); //或者      var textval = $("#text_id").val()...

2014-08-17 21:44:55 770 0

原创 使用INTERSECT来提高关联查询的效率

有三个表分别为et_task_termtt, et_core_thes_term_category ttc , et_core_thes_terms t 其中tt.termid=t.id、ttc.termid=t.id 刚 开始时用自然连接,sql语句为:select t.name from et...

2014-08-07 08:29:27 4334 0

原创 子Div使用Float后如何撑开父Div

一个Div包含了多个子Div,并且子Div使用了浮动后,父Div确不能被撑开.

2014-08-05 14:19:46 1232 0

原创 JS动态切换图片(一个页面中可多次使用)

JS切换图片(页面中可重复使用) * { margin:0; padding:0; } body { background:#FFF; color:#333; font:12px/1.6em Helvetica, Arial, sans-serif; } h1, h2, h3, h4,...

2014-08-04 20:26:35 6942 1

转载 挣值项目管理

挣值(Earned Value)的概念起源于19 纪与20世纪之交的工业时代。20世纪60年代,挣值管理首先在美国海军北极星导弹计划(Polaris Program)中使用,并由空军作了进一步的开发;美国国防部以挣值为核心理念,于1967年12月正式发布了“费用/进度控制系统标准” bbs.my...

2014-07-16 00:16:51 1485 0

原创 WPF 提示"该密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称"的解决方法

1.打开Visual Studio 命令提示(2010): 开始->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010) 2.用cd命令定位到当前密钥文件xxxx.pfx的目录 c...

2014-02-12 09:42:54 5181 0

原创 Eclipse for php + Xdebug搭建PHP的调试环境

Eclipse for php + Xdebug搭建PHP的调试环境和常见疑难问题解答。

2014-01-25 00:53:55 33600 0

原创 大型网站架构必须考虑的问题

这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者.NET环境,我们从架构的方...

2014-01-21 23:23:56 1155 0

原创 浅谈大型网站架构

1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问...

2014-01-21 23:22:57 963 0

原创 .Net 4.0中处理Corrupted State Exceptions异常

作为程序员,我想很多人应该都有过跟异常打交道的经历。而且相信也有很多人也都写过catch(Exception e){//blabla}这种把所有未知异常一股脑儿捕获并处理掉的代码吧。不管是为敷衍客户也好,让程序继续运行以避免糟糕的用户体验也罢,在微软眼中,这种处理方式都是不对滴,特别是当你的程序是...

2013-10-17 09:48:02 4501 0

原创 sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME

sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME         一个查询需要的CPU、IO资源越多,查询运行的速度就越慢,因此,描述查询性能调节任务的另一种方式是,应该以一种使用更少的CPU、IO资源的方式重写查询命令,如果...

2013-09-11 09:31:00 883 0

原创 .NET平台下几种SOCKET模型的性能介绍

Socket + Threads/ThreadPool 大概性能:小于1500个连接 实现:Accept一个Socket,就交给一个线程去管理,比较笨,但也比较有效,因为是同步方式,控制起来很方便。高级点的,就是交给一个线程池去管理,线程池由系统自动托管,省去了开销线程的时间。一般小型项目,...

2013-08-20 15:52:17 918 0

原创 单机最大的TCP连接数及其修改

单机最大的TCP连接数及其修改 一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535” .    65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP的端口数,最大值确实为65535。但是,这并不代表一个服务器可以接受的连接数就是这个值。很多人之所以...

2013-08-20 12:47:43 42508 4

原创 WPF发布程序后未授予信任的解决办法

WPF发布程序后未授予信任的解决办法 基于浏览器的WPF应用程序由于需要比较高的操作权限,所以在项目的安全性属性中选择了“这是完全可信的应用程序”选项。可是,在发布部署后,在其他电脑上打开xbap文件的时候,提示“未授予信任无法部署该应用,因为它不受信任并且可能不安全。”的错误。打开log文件发...

2013-08-07 17:47:24 5784 0

转载 Windows安全认证原理[NTLM篇]

Windows安全认证有两种方式:Kerberos和NTLM。其中Kerberos是首选的认证方式,该方式用在域环境下,且比较复杂。在此,我们介绍下相对简单的Windows另一种认证协议——NTLM(NT Lan Manager)。NTLM使用在Windows NT和Windows 2000 ...

2013-08-01 11:30:23 4653 0

原创 Android下使用Properties文件保存程序设置

java中经常用到properties文件,然后通过使用Properties类来解析,这里不再陈述使用properties文件的好处,主要探讨如何在android中使用properties文件!     方法一:因为最终是通过流文件来进行properties文件读取的,所以很自然,我们...

2013-06-26 20:16:33 3209 1

原创 .Net TcpClient读取超时后Connected变为false的bug

当设置了TcpClient.GetStream的ReadTimeout后,在Read超时后,将发现该TcpClient的Connected变成false。 但是,此时如果有数据过来还能正常接收。 不过,如果该现象发生在TcpListener接收的TcpClient中的时候,该TcpClient...

2013-06-26 20:05:27 2337 0

原创 Android中用Shape Drawable实现自定义界面

关于Shape使用的官方文档: http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape Android中常常使用shape来定义控件的一些显示属性,下面是Shape中的所有属性及一个简单的...

2013-06-26 19:37:31 807 0

原创 建立数据库的链接服务器的存储过程

/****** Object: StoredProcedure [dbo].[CreateDbLink] Script Date: 10/25/2012 08:35:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO AL...

2013-05-29 10:09:49 762 0

原创 .NET 多个程序使用一个安装包进行部署

多个程序使用一个安装包进行部署 1、  创建程序安装项目。在解决方案点击右键,“新建项目”——在其他项目类型中选择项目类型为“安装项目”。 2、  创建一个类库项目,并在该项目中添加一个安装程序类,在其中进行安装过程中的逻辑处理。在类库项目中右键,“新建项”——在“添加新项”对话框中选择“安装...

2013-05-29 09:30:04 2038 4

原创 android 用AsyncTask进行异步开发

AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI...

2013-05-29 08:38:59 601 0

原创 在VC中如何找到崩溃的源头(二)

通过“crash地址 + MAP文件”来定位出错代码位置虽然需要经过比较复杂的地址计算,但却是最简单实现的方式。如果仅仅想通过崩溃地址定位出错的函数,就更加方便了。我在网上找到一个解析MAP文件的小工具,可以非常清晰的列出每个函数的地址,并且可以将分析表格导出为Excel文件。工具下载地址:htt...

2013-03-20 14:29:08 873 0

原创 用.NET SqlBulkCopy类执行批量复制

在不同数据源之间转移数据是一个常见的开发任务。如果你应用过SQL Server,就会熟悉bcp(批量复制)命令。 它允许你快速将大型文件批量复制到SQL Server表或视图中。在.NET Framework 1.1中,可以通过SqlCommand对象利用bcp,但.NET Framewor...

2013-01-16 13:20:05 1201 0

原创 在VC中如何找到崩溃的源头

在VC中如何找到崩溃的源头 我把这个试验的源代码列出来: const int x =10000; int main(int argc, char* argv[]) {        int *y=0;        y=(int*)&x;        *y=10;    ...

2012-12-15 14:30:49 724 0

原创 “由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”的解决办法

VC“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”的解决办法   该问题的原因之一:您的计算机的Windows Installer服务没有开启。 其解决方法是打开控制面板→管理→服务,将Windows Installer服务开启,并设为自动,再重启电脑。...

2012-11-10 12:39:40 3537 1

原创 在WCF中使用事务处理

WCF在预定义绑定中实现了标准的WSAtomicTranscation(WS-AT)协议和Microsoft专有的OleTx协议,这些协议可以用来在消息中加入事务状态的信息。我们可以指定将一个操作的代码放在事务范围里执行。 我们需要在Binding的配置节里指定,transcationFlow=...

2012-09-26 13:13:18 834 0

原创 c++标准库——容器类

容器类可以分为两大类和容器适配器: (1)序列容器(Sequence containers) 这种容器中的元素是有序的,每一个元素在容器中都有一个确切的位置,这个位置不依赖于元素的值,而是跟放入容器的时机有关。标准的序列容器有三个:vector, deque, list。另外你也可以把...

2012-09-25 16:50:16 1966 0

原创 C++编译器生成的默认函数

C++编译器生成的默认函数 话题引入: 对象的赋值与复制是如何进行的?他们的区别是什么?如果一个空的自定义类型能否执行这些操作? 对象赋值:通过“ = ”运算符重载 User a(10),b; b = a; 对象复制:调用拷贝构造函数 User b; User a(b); 或者...

2012-09-17 15:54:59 2579 0

原创 C++中函数调用中的内存分配

C++中函数调用中的内存分配 一、内存分配     在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。     C++编译器将计算机内存分为代码区和数据区。很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据...

2012-09-17 14:51:12 3252 0

原创 C/C++动态内存分配和回收

一、C语言动态内存分配     要实现动态内存的分配,除了利用含指针成员的结构体之外,还需利用C语言提供的几个标准库函数。(使用时应包含头文件“alloc.h”或“malloc.h”或“stdlib.h”)     1.malloc函数   函数原型为void *malloc(unsigne...

2012-09-17 13:28:30 3523 0

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