自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寂竹

编程是一门艺术

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

原创 连接脚本(linker script)之输出段描述

摘要:介绍连接脚本中的段描述 关键字: 连接脚本    linker script    输出段    output  section description 正文: 输出端的完整说明大致如下: 1: section [address] [(type)] : 2: [AT(lma)] 3: [ALIGN(section_align)] 4: [SUBALIGN(subsection_align)] 5: [constraint]

2010-12-16 11:01:00 3059

原创 连接脚本(linker script)介绍

摘要:一些连接脚本示例。 关键字: 连接脚本   linker script    lds文件 连接脚本的详细介绍可以参考:http://sourceware.org/binutils/docs/ld/Scripts.html#Scripts,一个简单的lds文件如下所示: 1: OUTPUT_FORMAT("elf32-i386", "elf32-i386","elf32-i386") 2: OUTPUT_ARCH(i386) 3: ENTRY(_start

2010-12-15 22:41:00 8934 1

原创 gcc编译,ld连接

编写一个hello world的简单程序(hello.c): 1: #include 2: 3: int main(void) 4: { 5: printf("Hello world!/n"); 6: 7: return 0; 8: }.codearea{ color:black; background-color:white; line-height:18px; bor

2010-12-15 16:47:00 14450 3

原创 [转]Linux 汇编语言开发指南

转载自:http://www.ibm.com/developerworks/cn/linux/l-assembly/(原文排版较好,建议看原文) 一、简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言

2010-12-15 14:28:00 1357

原创 C语言中结构体(struct)乱序初始化

摘要:简单介绍一下C语言中结构体的乱序初始化方法,在linux内核中比较常见。 关键词:C语言 结构体 struct 初始化 正如下面代码所示: 1: struct __st_t 2: { 3: int a; 4: int b; 5: }; 6: 7: int main(void) 8: { 9: // 方式一 10: struct _

2010-12-14 16:43:00 4652

原创 #define宏定义的简单总结

1.常规用法 1: #define PI 3.1415926 2: #define CHAR_A 'a' 3: #define STRING_A "a".codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; over

2010-12-14 16:02:00 11150

原创 Shell中的&&、||、()和{}

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行; ||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);如果左边的命令执行成功了,那么就不会执行右边的命令。   如果希望把几个命令合在一起执行, s h e l l提供了两种方法。既可以在当前s h e l l也可以在子s h e l l中执行一组命令。 1、(): 为了在当前shell中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号()

2010-11-24 15:54:00 13198

原创 shell中的fork、source和exec总结(包括环境变量)

摘要:对fork,source和exec三种方式执行shell脚本的总结。   准备知识 1.我们所执行的任何程序,都是由父进程(parent process)所产生出来的一个子进程(child process),子进程在结束后,将返回到父进程去。此一现像在Linux系统中被称为 fork。当子进程被产生的时候,将会从父进程那里获得一定的资源分配、及(更重要的是)继承父进程的环境﹗ 2.Shell变量大致可以分为3种类型:    内部变量:系统提供,不用定义,不能修改,比如$#,$?,$*,

2010-11-24 15:31:00 6887

转载 [转]Linux静态/动态链接库的创建和使用

和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下: 生成静态库: 利用GCC生成对应目标文件: gcc –c Strlen.c

2010-11-22 16:20:00 774

原创 面向对象的基本原则

开闭原则:软件架构应该是对扩展开发,对修改关闭 里氏(Liskov)替换原则:任何基类可以出现的地方,派生类一定可以出现 依赖倒转原则:要依赖于抽象,不要依赖于实现 接口隔离原则:应当为客户提供尽可能小的接口,而不是提供大的接口。 组合、聚合复用原则:要尽量使用组合、聚合,而不是继承关系以达到复用的目的。 Demeter法则:一个软件实体应该与尽可能少的其他实体发生互相作用。 除此之外,还有一些需要注意的地方: 包与包之间不能够有循环依赖关系 不要重复自己:任何代码都

2010-10-10 11:27:00 727 2

原创 C++中函数动态绑定

只有采用“指针->函数()”或“引用.函数()”的方式调用C++类中的虚函数才会执行动态绑定,非虚函数并不具备动态绑定的特征,不管采用任何方式调用都不行。 下面代码中,一个java或者C#的程序员容易犯的一个错误。 1: class Base 2: { 3: public: 4: Base() { p = new char ; } 5: ~Base() { delete p; } 6: private:

2010-10-10 10:44:00 2214

原创 VS2008中显示内存泄漏

在VS2008中需要增加几句代码来显示C++程序中的内存泄露,代码如下: 1: #define _CRTDBG_MAP_ALLOC 2: #include 3: #ifdef _DEBUG 4: #define new new(_NORMAL_BLOCK,__FILE__,__LINE__) 5: #endif 6: 7: int main() 8: { 9: /*

2010-10-10 10:43:00 1806

原创 The Joel Test(祖尔测试)

Do you use source control?      你们使用源代码控制吗? Can you make a build in one step?     你们一步就能完成构建吗? Do you make daily builds?    你们做每日构建吗? Do you have a bug database?     你们有缺陷数据库吗? Do you fix bugs before writing new code?     你们会在写信代码之前修复缺陷吗?

2010-10-07 12:18:00 1252 2

转载 [转]The Joel Test: 软件开发成功 12 法则

有没有听说过SEMA?这可是衡量一个软件开发组好坏的很深奥的系统。别介,等一下!别按那个联接! 给你六年你也搞不清这玩意。所以我自己随便攒了一套衡量系统,信不信由你,这系统,三分钟就可掌握。你可以把省下的时间去读医学院了(译注:美国的医学院可是要读死人的!)。 Joel 衡量法则 你们用不用源文件管理系统? 你们可以把整个系统从源码到CD映像文件一步建成吗? 你们每天白天都把

2010-10-07 12:09:00 621

转载 [转]37 Signals的实用最小主义实践

尽管有那些可能性——复杂度、延误和不可预知的改动——还是有许多软件写出来、交付出去、而且最终被使用。偶尔软件会很好。在一些罕见情形下,软件的确有创新和价值。在一些案例中,还真按计划达成了目标。 在这些稀有案例中,成功往往是铁一般纪律的副产品——一种坚决做出又在每次遇到挑战时大声重申的选择,限制着项目的范围。在软件的成功故事中,你总能发现善于拒绝的人们。如同有意只在调色板上涂抹一种颜色的画家、宁肯写十四行诗也不写自由体诗歌的诗人,或者只固守小规模优势产品线的厂商一样,成功的程序员也在约束中成长,而非没有约束

2010-10-07 11:55:00 1196

原创 GCC输出带C源代码的汇编文件

摘要: 使用GCC输出带C源代码的汇编文件,这样便于对应着源代码来查看汇编代码 关键字: GCC  源代码 汇编 使用GCC输出带C源代码的汇编文件有两种方式, 第一种方式 gcc –c –S source.c objdump –S source.o 首先生成带生成目标文件,然后使用objdump命令,显示源代码与汇编代码的混合文件 这种方式生成的信息较少,但是主要的信息是足够了 第二种方式 使用GNU C Assembler的列表功能来完成,例如: gcc –c –g –Wa

2010-09-22 17:24:00 13085

原创 word文件图标无法显示的问题

摘要:word文件的图标无法正常显示,但是可以直接双击打开,也就是说word没有问题 关键字: word 图标 有一天重启电脑之后发现word文件的图标显示成了一个未知文件的图标,其他的office软件的图标也是如此,比如excel,ppt,project等。查看了一下文件的打开方式还是word程序,并且可以通过双击打开文件,这就说明word文件关联是没有问题的。那问题在哪儿呢? 然后查看了一下资源浏览器中“工具”--“文件夹选项”--“文件类型”中DOC类型,点击“高级”(有可能是“恢复”,然后

2010-09-21 10:21:00 21645

原创 C语言隐式类型转换规则

摘要: 记录一下C语言中的隐式类型转换规则,在一些特殊情况下需要注意 关键字: C语言  隐式类型转换 C语言规定,不同类型的数据需要转换成同一类型后才可进行计算,在整型、实型和字符型数据之间通过类型转换便可以进行混合运算(但不是所有类型之间都可以进行转换) 当混合不同类型的变量进行计算时,便可能会发生类型转换相同类型的数据在转换时有规则可循: 字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) short型转换为int型(同属于整型) float型数据

2010-09-20 19:26:00 4349

原创 C/C++的一些预定义宏

摘要:C/C++中有一些预定义宏,同过这些宏可以使得调试更加方便 关键字:  C/C++,预定义宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:当前源代码文件名的字符串文字 __LINE__:当前源代码中的行号的整数常量 __DATE__:进行预处理的日期(“Mmm dd yyyy”形式的字符串文字) __TIME__:源文件编译时间,格式微“hh:mm:ss” __func__:当前所在函数

2010-09-15 11:32:00 3753 2

原创 在explorer中增加右键菜单打开命令行

摘要:为了减少在命令行中cd的麻烦,在windows的资源管理器中增加直接打开命令行的右键菜单 关键字: 资源管理器    explorer   命令行  右键菜单 注册表 将下面代码保存为*.reg文件,然后双击运行导入注册表即可: 1: Windows Registry Editor Version 5.00 2: 3: [HKEY_CLASSES_ROOT/Directory/shell/runas] 4: @="以管理员权限打开命令行窗口"

2010-09-15 11:24:00 3228

原创 C++构造函数调用构造函数问题

摘要:本文介绍了在C++中实现构造函数调用构造函数的实现方法。 关键字:C++     构造函数    定位new      placement new 最近在整理C++知识的时候,突然想到如何在C++中实现构造函数调用构造函数的问题,常见的错误是按照如下方式来调用: 1: #include 2: 3: class Test 4: { 5: public: 6: int m_a; 7:

2010-09-09 11:32:00 4425 1

原创 [转]GNU/Linux Unix 下开发工具

编辑器: vi:老牌编辑器,在各个unix和unix-like平台都可以找到 emacs:GNU项目开发的编辑器,功能强大扩展性强,绝对不是一个编辑器那么简单  / 代码打补丁工具: diff & patch:一对好搭挡,diff用来生成代码补丁,而patch则用来给代码打补丁 / 项目构建工具: make(Makefile):常用的项目构建工具,用一个Makefile就可以从整个项目的代码中构建各个目标 autotool(包括Autoconf, A

2010-09-07 10:39:00 1765

原创 一个C/C++中的移位操作问题

摘要:关于c/c++中由于CPU位宽造成的一个移位操作问题,b = ~a>>1中b的值的问题。 先看一段代码: 1: #include 2: 3: int main() 4: { 5: unsigned char a = 0xAA ; 6: unsigned char b = 0x00 ; 7: b = ~a>>1 ; 8: printf("0x%X",b) ;

2010-08-04 14:17:00 6831

原创 Visio 2007 画大括号

最近使用Visio时,需要画大括号,于是就上网查了一下Visio中插入大括号的方法: 在Visio文档中,依次点击“文件(File)”—“形状(Shapes)”--“其他Visio方案(Visio Extras)”—“标注(Callouts)”,然后左边的选项中多了“标注”栏,在“标注”栏中有“侧边大括号”(默认是右侧,旋转180之后就是左侧) 贴一张绘出来之后的效果图(用例相关技术--摘自《软件架构技术》):

2010-08-02 15:43:00 166126 16

原创 注册表文件(.reg)编写方法

原本是很早以前写在blogspot的文章,今天重新整理了一下。注册表的概述这里就不多说了,本文主要介绍如何通过.reg文件操作注册表,其他的操作方式也不是本文涉及的内容。本文主要内容包括: 1. .reg文件的语法  2.  添加注册表项或添加和更改注册表值 3. 删除注册表项和值 4. 重命名注册表项和值 5. 需要注意的问题 .reg文件的语法 .reg文件实际上是一个文本文件,.reg 文件具有以下语法: 1: RegistryEditorVersion

2010-07-31 21:42:00 12511 2

原创 【转】交换机转发的三种方式

本文介绍3种交换机转发的方式,供大家参照。 1.直通式(Cut Through) 直通方式的以太网交换机可以理解为在各端口间是纵横交叉的线路矩阵电话交换机。它在输入端口检测到一个数据包时,检查该包的包头,获取包的目的地址,启动内部的动态查找表转换成相应的输出端口,在输入与输出交叉处接通,把数据包直通到相应的端口,实现交换功能。由于不需要存储,延迟非常小、交换非常快,这是它的优点。它的缺点是,因为数据包内容并没有被以太网交换机保存下来,所以无法检查所传送的数据包是否有误,不能提供错误检测能力。由于没有

2010-07-27 20:58:00 7287

原创 一些益智题

1、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子? 2、一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个

2010-07-26 20:53:00 2728

原创 全局变量与局部变量

一个程序将操作系统分配给其运行的内存块分为4个区域: (1)代码区,存放程序的代码,即程序中的各个函数代码块。 (2)全局数据区,存放程序的全局数据和静态数据。 (3)堆区,存放程序的动态数据。 (4)栈区,存放程序的局部数据,即各个函数中的数据。

2010-07-26 15:22:00 1912

转载 【转】德鲁克管理学家詹文明:职业经理人的五大工作

“负责知识的应该与绩效表现的人”是职业经理人,他们究竟要做什么呢?如何才能有效呢?德鲁克指出经理人应该做的核心有五大工作。 一、设定目标 二、任务分派 三、激励与与沟通 四、绩效评估 五、培育人才(包括经理人自己在内)

2010-07-26 11:35:00 1256

原创 DDE,OLE,COM,ActiveX,DCOM,COM+发展史

DDE:Dynamic Data Exchange,主要解决进程间通信问题,局限在于通信数据量以及网络数据通信,之后出现过NetDDE、FastDDE和AdvancedDDE等扩展版。 OLE:Object Linking and Embedding,对象连接与嵌入,提供了建立复合文档的方法。1.0版本中使用了Virtual Function Table(VTBL)技术,在2.0中已经由COM取代。 OLE Custom Controls:当时作为一种VB Extension控件的替代

2010-07-20 20:42:00 4718

原创 Ubuntu安装与卸载软件

一、使用apt-get 在使用这种方式之前,最好是有一个比较好的软件源,并且可以考虑使用其他多线程软件下载到apt的缓存中,使用apt-get来安装,常用命令如下: 1: #安装软件 2: apt-get install softname1 softname2 softname3 3: 4: #卸载软件 5: apt-get remove softname1 softname2 softname3

2010-07-15 14:50:00 2135

原创 cmd下的列出文件目录列表的命令

摘要:cmd下使用tree命令可以用树状结构显示出系统某个目录下所有文件夹和文件。   1: TREE [drive:][path] [/F] [/A] 2: /F Display the names of the files in each folder. 3: /A Use ASCII instead of extended characters..codearea{ color:black; background-col

2010-07-14 09:54:00 21740

原创 DirectUI简介

DirectUI介绍及几个DirectUI技术的开发软件

2010-07-13 16:55:00 8839 1

转载 【转】正则表达式30分钟入门教程

30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。

2010-07-13 15:19:00 1472

原创 vi查找替换命令详解

一、查找 查找命令 /pattern :向下查找pattern匹配字符串 ?pattern:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找 字符串匹配 pattern是需要匹配的字符串,例如: 1: /abc #查找abc 2: / abc #查找abc单词(注意前后的空格)

2010-07-13 15:05:00 171245 3

原创 viksoe.dk网站

网址:http://www.viksoe.dk/code/windowless1.htm 包含bjarke的许多windows C++的源程序代码,其中包括可以窥探DirectUI技术的UILib的示例及源代码

2010-07-12 17:26:00 2201

原创 vi/vim复制粘贴命令

1. 选定文本块。使用v进入可视模式,移动光标键选定内容。 2.复制的命令是y,即yank(提起) ,常用的命令如下:     y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用;     yy    复制整行(nyy或者yny ,复制n行,n为数字);     y^   复制当前到行头的内容;     y$    复制当前到行尾的内容;     yw   复制一个word (nyw或者ynw,复制n个word,n为数字);   

2010-07-11 17:35:00 312059 7

原创 DHCP租约

租约概念 租约就是DHCP分配给客户端的IP地址的使用期限,在到一定的时间后,服务器要收回这个IP地址,需要重新分配,如果租约设置过长,就会出现IP地址已经分配完的假象。 比如,DHCP的网段在192.168.1.100-192.168.1.200之间,租约如果设置过长,就会出现IP已经分配完的现象,新加入的机器无法再从服务器获取地址了,为什么会出现这种情况呢?假如,租约设置为100天,在这100天内,如果机器没有变动那没什么问题,如果更换一批机器的网卡,新换上的网卡就

2010-07-09 17:43:00 22725

原创 DHCP服务器安装与配置

FreeBSD中的DHCP服务器的安装于配置详细的中文文档请参见: http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/network-dhcp.html 安装dhcp服务器(需要下载一些文件,所以最好有网络连接): 1: cd /usr/ports/net/isc-dhcp30-server/ 2: make install clean

2010-07-09 17:14:00 2600

原创 FreeBSD中wpa_supplicant的使用方法(802.1x拨号认证)

环境:FreeBSD 8.0; 基于802.1x认证系统的校园网。 FreeBSD自带了wpa_supplicant程序,所以不需要自己安装了,其中几个关键文件的路径如下: /usr/sbin/wpa_supplicant :  程序文件 /etc/wpa_supplicant.conf  :  账号配置文件 /etc/rc.d/wpa_supplicant.sh  : 一个shell wpa_supplicant.conf 编写帮助可以使用命令 man wpa_su

2010-07-09 16:00:00 6851

myPaginationV6.0

myPagination 解决了 客户端多条件无刷新动态分页的问题,提供了较好的体验效果,功能强大,使用简单,方便快捷,轻松上手。 本版本为V6.0版本,解决大家无法在google code下载的问题。

2015-08-13

Design Pattern Framework 4.0(C#)

.Net 程序员学习设计模式的好资源,内容相当地丰富,内有源码和PDF文档说明(4.0版本)

2011-08-30

office系列软件的图标资源文件

office系列软件的图标资源文件,主要是在系统不能显示的情况下,用于恢复word、excel等软件关联文件的图标。具体方法,请参考: http://blog.csdn.net/lanxinju/archive/2010/09/21/5898751.aspx

2010-09-21

空空如也

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

TA关注的人

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