- 博客(465)
- 资源 (30)
- 收藏
- 关注
原创 通过SPY++实测WinForm和WPF控件的差异
作为Windows桌面UI开发的两大.net开发库,WinForm和WPF同时存在着。之所以功能如此重合的两个库同时存在,是因为两者的底层差异非常大,WinForm底层依赖于传统的Win32API,特别是User32.dll;而WPF则底层依赖于Direct3D。 而我们知道User32和Direct3D两者是平行存在,彼此独立的。WPF之前几乎所有的WindowsUI开发都依赖于User32,当
2014-04-01 20:45:17 5141
原创 VS2013 C#WinForm程序构造界面拖动控件NumericUpDown时"未响应“是有道词典惹的祸
很久之前遇到过因为金山词霸和其他软件冲突导致的程序无响应的情况。没想到今天情况重现,VS2013在可视化编辑NumbericUpDown控件的时候,又出现了”未响应“,发现又是有道词典惹的祸。可见屏幕取词功能还是应该好好研究的,希望微软和有道之间能协调解决一下!!!
2014-03-11 15:37:44 6364 7
原创 VimScript脚本语言学习------常用的内置函数---(操纵Float)
Float是VimScript中的最后一种数据类型,可能是后来加入的,所以排在最后。在非科学计算的编程领域,其实浮点数用的确实很少。虽然如此,它也是一个不可或缺的数据类型,这一节我们来看看vim提供了那些操纵Float类型的内建函数。(1)float2nr({expr})把浮点数转换为整数,返回给定浮点数的整数部分。注意:这里不是四舍五入,而是所有小数都舍去。(2)abs({e
2014-03-09 12:13:17 2884
原创 VimScript脚本语言学习------常用的内置函数---(操纵Dictionary)
Dictionary是VimScript中最复杂的数据类型,等同于PHP中的关联数组,其本质是以字符串为键的哈希表。在PHP中,索引数组和关联数组统一为Array数据类型,而在VimScript里则分成了List和Dictionary两个类型。个人觉得还是PHP的做法更好。下面就来看看Vim为我们提供了那些内置的与Dictionary有关的函数。(1)get( {dict}, {key}
2014-03-09 11:42:04 3665
原创 VimScript脚本语言学习------常用的内置函数---(操纵List)
List和Dictionary是VimScript中的重要数据类型。本节来介绍操纵List数据类型的内置函数。(1)get( {list}, {idx} [, {default}] )返回list的第idx个元素。需要注意的是,即使索引值idx超出了有效范围,该函数仍然会返回一个值,这个值或者是0,或者是给定的default参数。(2)len ( {expr} )返回数组的长度。
2014-03-09 11:11:06 5594
原创 VimScript脚本语言学习------常用的内置函数---(操纵String)
1 平台API的重要性要使用任何一门语言写出点真正有用的程序来,都离不开平台API的调用。使用C/C++开发Windows程序需要大量调用Win32API,开发Linux程序需要大量调用Linux API,开发Java程序,需要调用使用Java封装好的平台API。API大体上分为两种,一种是以函数的形式体现,如Win32API, Linux API, Socket API等,另一种则是以类的形
2014-03-08 20:21:12 14181
原创 VimScript脚本语言学习------变量作用域、函数
前面学习VimScript数据类型的时候,介绍了Number, Float, String, List, Dictionary五种的基本用法,本节将学习最后一种数据类型:Funcref。当然之前必须要对函数进行介绍。1 函数VimScript支持编程语言中通用函数的概念,而且内建了大量的函数供用户使用,如用于查询的serach(),获取行的getline()等等,今后的例子中将会逐渐使用这
2014-03-08 17:58:13 10811 1
原创 VimScript脚本语言学习------条件、循环
条件和循环结构是几乎所有的编程语言都提供的基本功能,VimScript也不例外。1 条件语句1.1 if else1.2 ?:1.3 switch case2 循环语句2.1 while2.2 for2.3 for in
2014-03-08 13:37:24 7521
原创 VimScript脚本语言学习------helloworld及数据类型
vim配置文件、语法文件、插件文件中使用的都是vim专用的脚本语言VimScript。这门语言与PHP以及Javacript有些类似,但不相同。它只能运行于vim平台之上。从本文开始,将记录作者本人学习这门语言的一些心得体会。大概的学习思路是:语言定位---数据类型与转换---基本语法---函数---平台API---实用插件编写。1 VimScript简介VimScript是用于配置、扩展
2014-03-07 19:28:32 14962
原创 实践中学习vim之vim配置文件、插件文件加载路径
0 引言理解vim的启动过程对于增强使用vim的信心非常重要,本文所有的信息均来自vim自身提供的参考手册和作者实际操作实践。VIM REFERENCE MANUAL的Starting Vim这节详细描述了vim的启动过程。vim完整的启动过程非常复杂,因为要兼容不同的平台,不同的运行模式。本文只考虑Linux平台上非GUI模式中最常见的启动流程。1 配置文件路径如何确定?vim启动过
2014-03-06 18:32:55 15551 4
原创 实践中学习vim之按键序列映射
【术语说明】本文对于vim中所有能引起动作的字符序列统称为“命令”,这不仅仅包含以:开头的命令行模式下的命令,也包括其他模式下的按键序列。【注意】由于vim各个部分相互关联紧密,简单起见,本文中描述时不会完全考虑与之相联系的其他主题,由此会造成不准确的描述。1 vim每时每刻都工作于某一模式下Vim采用了“不同模式”设计思想,它拥有很多模式,常见的是 normal(一般模式),
2014-03-04 19:52:26 8610 1
原创 使用VC++进行项目开发的API抉择
1 根本目的视图与逻辑隔离、易于不同平台的移植,易于逻辑开发人员和视图开发人员的协作。2 基本原则同样功能的前提下,优先选择标准C++库的API程序逻辑部分拒绝使用MFC只在界面和必须使用MFC的情况下,使用MFC 3 选择结果数据结构,如链表、哈希表、队列等,使用标准C++库,如std::vector;线程、进程、同步等与UI无直接关联的部分,使用W
2014-02-27 19:24:14 1547
原创 从GDI到GDI+使用的坐标系看微软二维绘图思路的进步
1 微软Windows绘图系统使用的三种坐标系为了便于绘制,微软在其绘图系统中引入了三种不同的坐标系,这三种坐标系都是平面直角坐标系,下面从坐标系的三要素即度量单位、坐标原点、坐标轴方向分别对其进行说明。1.1 设备坐标系顾名思义,设备坐标系是依据绘图使用的硬件设备而定义的。其度量单位为像素,x轴向右为正,y轴向下为正。至于坐标原点则可以通过SetViewPortOrg()进行设定。
2014-02-27 18:52:14 4672
原创 VC++自动生成的对话框类头文件中的enum {IDD= xxxx}解释
1 MFC中对话框类和对话框资源之间的联系使用VC++ MFC做开发的时候,经常需要插入对话框资源,然后根据这个资源生成相应的对话框类文件。类文件和对话框资源之间的联系纽带就是对话框控件ID,与其他资源ID一样,也是一个整数而已,只不过VC++开发环境在resource.h文件中增加了一个宏定义来描述这个整数而已。下面是一个对话框类的头文件。#pragma once// CT
2014-02-15 10:41:03 15306
原创 VC++中独立捕获按钮按下和抬起两个动作
1 由来现实世界中的按钮的动作为:按下后只要不松手就一直处于被按下状态,此时会执行开关闭合等类似的行为;松开手后,按钮抬起,执行开关断开等类似行为。VC++中默认的按钮的外观行为与物理按钮类似,也是鼠标按下后保持被按下状态,松开鼠标则自动弹起。然而问题是,按钮只会在按下-抬起 这个过程完成后才会向父窗口发送WM_COMMAND消息,单独的按下以及单独的抬起都不会通知父窗口。在工
2014-02-12 00:53:49 18605 15
翻译 最简洁的Windows Service 程序C源码
#include #include #define SLEEP_TIME 5000#define LOGFILE "C:\\MyServices\\memstatus.txt"SERVICE_STATUS ServiceStatus; SERVICE_STATUS_HANDLE hStatus; void ServiceMain(int argc, char** argv);
2014-01-22 00:57:31 2550
转载 浅谈C中的wprintf和宽字符显示【其实很深】
今天在CSDN的Blog首页看到一篇文章“也谈计算机字符编码 ”,由于前一阵业余翻译了“UTF-8 and Unicode FAQ for Unix/Linux”一文,自己对字符集、编码和Unicode等内容一直保着者很强的兴趣,自然不会放过这样的文章。作者的文章写得很明白易懂,虽然有一些概念上的细节问题我觉得有商榷之处;作者还给出一个简单的在windows下使用wprintf正确输出
2014-01-21 23:48:29 19894 2
原创 因以下文件的损坏或丢失,Windows无法启动【解决方法】
【现象描述】【原因分析】(1)由于某种原因(如正常关机)导致这个文件损坏或丢失;(2)文件本身没有问题,但是机器读取出错。【解决方法】对于原因(1),解决方法可以按照故障时系统给出的提示,用Windows安装盘进行修复,但是这种方式非常慢,而且现在大多数都是Ghost版,系统安装盘不容易找到。其实,我们完全没有必要非得使用系统安装盘来修复。在PE盛行的今天,完全可以借助独立
2014-01-20 12:12:52 131068
原创 bash执行命令各种情况分析
Linux系统中的可执行文件有多少种类?bash环境下是如何执行程序的?下面逐一分析。1 Linux系统中可执行文件种类1.1 二进制可执行文件这种文件是最常见的,如/bin/ls,/sbin/ifconfig, /bin/cat等等。[root@notebook135 ~]# file /bin/ls /bin/cat /sbin/ifconfig/bin/ls:
2014-01-16 12:43:16 12881
原创 bash中IO重定向功能和管道功能的模拟
“程序默认使用标准输入输出”,这是Unix哲学中的其中一条。1 bash中的重定向模拟用户登陆系统后,系统已经打开了终端,并在描述符表中使用三个描述符0,1,2来进行索引。由于Unix系统中描述符表是被子进程继承的,所以以后生成的任何进程都自动拥有了这三个描述符。其中的0用于索引标准输入设备,1用于索引标准输出设备,2则用于索引标准错误输出设备。像C库中的printf()函数就是向描述
2014-01-10 18:36:07 2785
原创 苹果新手Mac OS X 使用笔记--------应用程序静态布局
注意:MacOS X系统支持多种形式的应用程序,请参考:苹果新手Mac OS X 使用笔记--------四种应用程序类型本文特指具有GUI的基于Cocoa开发的程序,此种程序也是MacOS X中的最普遍最“苹果”的程序。学习一种新的操作系统,就必须要学习一个应用程序是如何组织和运行的。也就是一个可执行程序的静态和动态布局。静态布局指的是程序作为文件或者文件夹是如何存放到文件系统中的,
2013-12-16 18:20:15 4464
原创 苹果新手Mac OS X 使用笔记--------四种应用程序类型
Mac OS X之所以得到很多程序员的喜爱,其支持多种开发语言和程序运行环境的特性是一个重要原因。由于其根植于Unix系统,所以原生就支持传统的unix C/C++程序;当然GUI程序则更是OS X的强项;Java虚拟机在Mac OS X上也有良好的实现;新版本的Mac OS X也紧跟潮流,支持Web前端小程序的开发。1 C/C++编写的传统的无图形界面程序开发语言:C/C++AP
2013-12-05 12:24:51 3868
原创 PostgreSql新手入门命令
1 命令行登录数据库有两种方式,一是直接在系统shell下执行psql命令;而是先进入psql环境,然后再连接数据库。下面分别给出实例:(1)直接登录执行命令:psql -h 172.16.35.179 -U username -d dbname ,其中username为数据库用户名,dbname为要连接的数据库名,执行后提示输入密码如下:Password for user use
2013-12-05 12:14:54 80943 1
原创 基于网络远程开关机的原理与实践
计算机网络运维中,远程关闭和启动计算机是常见的任务。这可以通过开发专门的软件来实现,但实际上大多数系统都自身就原生地拥有这些功能,本文在分析原理的基础上,基于系统本身的功能详细说明了基于网络的远程开关机的步骤。1 远程开机1.1 原理网络远程开机,也被称作Wake On Lan,其原理很简单,就是计算机处于关闭状态时,网卡仍然处于激活状态,可以接收来自网络的数据包,如果收到的数据包符合
2013-11-22 10:24:42 12305 2
原创 苹果新手Mac OS X 使用笔记--------系统目录结构
苹果风愈刮愈烈,不仅iOS随着iPhone、iPad的流行而广泛获得认可,Mac OS X凭借其华丽简洁的用户界面和iOS开发环境,其占有率也突飞猛进,特别是深受程序员们的喜爱。本文从系统目录层面,分析其传统的Unix方面和OS X特有的方面,帮助Mac新人更快的了解使用OS X。
2013-11-12 14:10:47 94171 2
原创 苹果新手Mac OS X 使用笔记--------显示桌面,切换程序
1 显示桌面 F11 非全屏显示程序情况下,按下F11,所有窗口隐藏到边上,露出桌面。再按下F11恢复。2 切换程序 Command +Tab 任何情况下,按下Command + Tab 切换正在运行的程序,与Windows下的Alt + Tab类似。3 切换全屏程序 Ctrl+箭头 如果一个程序窗口最大化了,布满了整个屏幕,那么它就自己成了一个工作区了。多个
2013-11-12 10:56:46 9161 1
原创 苹果新手Mac OS X 使用笔记--------图形界面与常用软件
对于从Windows转向Mac的用户来说,使用Mac时总会忘不掉原来的习惯与概念,很有必要把OS X中与Windows的对应关系整理一下。1 Windows的资源管理器对应OS X的Finder 很多Windows用户开机后的第一件事就是双击桌面上“我的电脑”(WindowsXP)或“计算机”(Windows7,8),这样打开的就是Explorer,著名的资源管理器。在Mac中,
2013-11-12 10:44:04 5641
原创 苹果新手Mac OS X 使用笔记-------- Mac OS X中字体发虚的原因与解决
Mac OS X使用了3天了,常用软件安装和使用基本掌握,发现了一个从Windows转过来的人都会发现的问题,那就是Mac OS下字体模糊、发虚的问题。在网上着了不少文章,发下如下简短的文字基本上说明了问题。得到的结论是,要想解决字体发虚问题的,根本方式就是更换高PPI(300以上)的显示器。在淘宝上找了一下,目前还没有如此高的显示器出售。下文转自: http://bbs.weipho
2013-10-28 20:45:31 11553
转载 php之json_encode和json_decode
1.当array是一个从0开始的连续数组时,json_encode出来的结果是一个由[]括起来的字符串而当array是不从0开始或者不连续的数组时,json_encode出来的结果是一个由{}括起来的key-value模式的字符串$test = array();$test[] = 1;$test[] = 1;$test[] = 1;DEBUG(json_encode($
2013-09-24 00:57:26 2351
原创 Visual C++使用ADO操作SQL最精简例子代码
已经不使用Visual C++多年了,最近应邀为朋友修改一个现存的VC++操作SQL Server2000的老程序,所以重新回顾了一下基本的代码格式。发布到这里,以便于以后再用到时迅速复习。1 头文件stdafx.h// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件//#pragma once#inc
2013-09-19 12:29:37 7329 2
原创 PHP单文件入口URL路由原理
直接上代码: <?php/******************************************************* * * URL 路由原理展示代码 * * 浏览器访问地址: http://server/index.php?C=Controler1&M=Method1 * 根据C找到控制器类,再根据M找到方法,然后执行这个方法 * *
2013-09-12 14:45:50 11521 1
原创 FCL应用技巧之------使用List<T>的Distinct()去除重复元素
1 基本分析先来看看泛型链表 List 的定义:public class List : IList, ICollection, IList, ICollection, IReadOnlyList, IReadOnlyCollection, IEnumerable, IEnumerable可见它实现了 IEnumerable,而IEnumerable规定了Distinct方法。
2013-09-11 20:53:59 4970
转载 让grep高亮显示匹配部分字符串
方法1:编辑 vim ~/.bashrc 添加 alias grep = 'grep --color=auto'source ~/.bashrc 方法2vim ~/.bashrc export GREP_OPTIONS='--color=auto' GREP_COLOR='10;32' 这里用到gr
2013-09-03 16:59:50 5850
原创 C#程序在Windows8下能运行而在XP下双击无反应的一次遭遇
现象:使用C#开发了一个小的WinForm程序,在Windows8系统上运行正常,在XP上却无法运行,双击程序图标,没有任何反应。调试限制条件:由于XP上不能安装开发环境,所以不能在XP上进行源码级别调试分析步骤:(1)项目属性设置CPU为x86(默认是Any),这样结论:
2013-09-02 14:59:02 5705
原创 C#中的数组
在数据结构算法,以及科学计算中,数组是必不可少的工具。习惯了C中简单直接的数组表达方式的程序员,初次使用C#中的数组时,可能会有一些茫然。本文采用对比的方式来学习C#数组的使用方式。本文不介绍那些语法糖的东西,尽管语法糖有时候能大大地简化代码。1 一维数组C 语言中一维数组实例代码如下:#include int main(int argc, char** argv){
2013-09-02 14:45:37 1569
转载 ORA-19809: limit exceeded for recovery files问题解决
今天查看数据库管理器出错日志oradim.log 发现如下报警信息:ORA-16038: log 3 sequence# 472 cannot be archivedORA-19809: limit exceeded for recovery filesORA-00312: online log 3 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADA
2013-08-26 14:03:13 9178
Introduction To Algorithms 3rd edition (算法导论第三版)
2012-09-24
EXCEL VBA基本教程与常用函数
2010-01-03
glut+glew-- Windows平台开发OpenGL必备
2009-12-26
反修饰VC++符号名称
2009-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人