Leonard

In theory, there is no difference between theory and practice. But, in practice, there is.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年10月8日

摘要: 新建vim配置文件 vim ~/.vimrc" 不要使用vi的键盘模式,而是vim自己的set nocompatible" 语法高亮set syntax=on" 去掉输入错误的提示声音set noeb" 在处理未保存或只读文件的时候,弹出确认set confirm" 自动缩进set autoindentset cindent" Tab键的宽度set tabstop=4" 统一缩进为4set softtabstop=4set shiftwidth=4" 不要用空格代替制表符set noexpandtab" 阅读全文
posted @ 2011-10-08 19:52 Leonard Tse 阅读(349) 评论(0) 推荐(0) 编辑

2011年10月6日

摘要: C99中新增加了restrict修饰的指针:由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法,仅当第二个指针基于第一个时,才能对对象进行存取。对对象的存取都限定于基于由restrict修饰的指针表达式中。由restrict修饰的指针主要用于函数形参,或指向由malloc()分配的内存空间。restrict数据类型不改变程序的语义。编译器能通过作出restrict修饰的指针是存取对象的唯一方法的假设,更好地优化某些类型的例程。[典型例子]memcpy()在C99中,restrict可明确用于memcpy()的原型,而在C89中必须进行解释。void *memcpy(void 阅读全文
posted @ 2011-10-06 09:21 Leonard Tse 阅读(6729) 评论(0) 推荐(0) 编辑

2011年10月5日

摘要: 计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对于在内部是以低位字节优先方式存储数据的机器,在Internet上传输数据时就需要进行转换。 我们要讨论的第一个结构类型是:struct sockaddr,该类型是用来保存socket信息的: struct sockaddr { unsigned short sa_family; /* 地址族, AF_xxx */ char sa_data[14]; /* 14 字节的协议地址 */ }; sa_family一般为AF_INET;sa_data则包含该socke... 阅读全文
posted @ 2011-10-05 18:24 Leonard Tse 阅读(451) 评论(0) 推荐(0) 编辑

2011年10月2日

摘要: tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。# t 阅读全文
posted @ 2011-10-02 18:49 Leonard Tse 阅读(285) 评论(0) 推荐(0) 编辑

2011年8月29日

摘要: 在VC中,大多数情况对文件的操作都使用系统提供的 API 函数,但有的函数我们不是很熟悉,以下提供一些文件操作 API 函数介绍:一般文件操作 APICreateFile打开文件要对文件进行读写等操作,首先必须获得文件句柄,通过该函数可以获得文件句柄,该函数是通向文件世界的大门。ReadFile从文件中读取字节信息。在打开文件获得了文件句柄之后,则可以通过该函数读取数据。WriteFile向文件写入字节信息。同样可以将文件句柄传给该函数,从而实现对文件数据的写入。CloseHandle关闭文件句柄。打开门之后,自然要记得关上。GetFileTime获取文件时间。有三个文件时间可供获取:创建时间 阅读全文
posted @ 2011-08-29 23:13 Leonard Tse 阅读(7071) 评论(0) 推荐(0) 编辑

2011年8月24日

摘要: 1.微软针对这个问题发布了一个补丁包。下载地址2.下载之后是一个源码包,解压,编译,生成一个FileTool.dll。3.将生成的dll拷贝到VC安装目录的“\Common\MSDev98\AddIns\”文件夹下。4.在AddIns目录下执行命令“regsvr32 File Tool.dll”手动注册dll文件。5.运行VC6,右击工具栏,选择“自定义…>附加项和宏文件”,选择FileTool。此时会多出一个“O A”工具栏,以后使用工具栏进行文件的打开和添加就可以了。另外,在win7下安装VC6时,请使用“自定义”安装选项。不要选择安装OLE/Com Object Viewer模块。 阅读全文
posted @ 2011-08-24 23:27 Leonard Tse 阅读(5891) 评论(0) 推荐(0) 编辑

2011年8月6日

摘要: 谷歌浏览器默认在线安装,这给我们这些公司内部无法上外网的用户带来了很多不便。所以google提供了独立安装包的下载地址。Chrome Frame离线下载地址Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Google\ChromeFrame]"IsDefaultRenderer"=dword:00000001 阅读全文
posted @ 2011-08-06 18:51 Leonard Tse 阅读(1594) 评论(0) 推荐(0) 编辑

2011年4月4日

摘要: 为对话框添加Radio1,Radio2,Radio3和Radio4。很简单,先为这些Radio Button排个顺序(这 个必须要做,比如你的一组控件有Radio1,Radio2,Radio3,就把它们的TAB顺序分别设为1,2,3,并将Radio1的Group属性 设为True,这样,当选中Radio1的时候和它关联的变量就是0,当选中Radio2的时候和它关联的变量就是1,依此类推),就是排 列他们的TAB ORDER。在对话框资源面板上Ctrl+D,然后按你自己的理想顺序用鼠标逐个点击就可以了。不妨假设Radio1、Radio2、Radio3、 Radio4分别是1、2、3、4。Radi 阅读全文
posted @ 2011-04-04 16:29 Leonard Tse 阅读(1981) 评论(0) 推荐(0) 编辑

2011年4月2日

摘要: 最近项目组让新来的小MM开发一个PC端的串口模拟器,我正好也一起学习一下win32编程。懒得用CreateWindow建立窗口,所以就用VC自带的资源编辑器画Dialog了。话说这个Dialog和window的编程思想差不多,都是create,show,update,消息队列循环这样一个流程。所以也就习惯了。但是今天晚上还是碰到了一些麻烦,我的Dialog程序关闭后窗口消失了,但是进程管理器显示进程并未被杀死。原来是在消息处理函数里少了如下语句:caseWM_DESTROY:PostQuitMessage(0); returnTRUE;另外还有一个小小的收获:发生上述错误是因为codebloc 阅读全文
posted @ 2011-04-02 23:10 Leonard Tse 阅读(9172) 评论(1) 推荐(0) 编辑

2011年2月1日

摘要: 刚刚进入公司,新人教育中要求我学习使用SVN,CVS版本控制工具。由于公司的文件我不敢妄加改动,所以就想着在别的地方能够训练我的SVN,CVS操作,然后我就申请sf.net的开源项目了。注册不是问题,注册成功后登录,点击“Create Project”,根据提示填入项目的相关信息就OK了。然后系统会给你SVN checkout的地址。checkout不需要权限验证(谁让sf.net是开源项目网站呢?)。如果要提交修改(commit),就需要登录了,就是我SF帐号的用户名和密码。接下来就有一件事情开始烦我了。SF项目默认不提供CVS服务。 问题就是我如何开启项目的CVS服务。网上找了好久,中文版 阅读全文
posted @ 2011-02-01 15:06 Leonard Tse 阅读(1115) 评论(2) 推荐(0) 编辑