- 博客(64)
- 资源 (2)
- 收藏
- 关注
原创 特化模板函数的编译错误
这两天写代码,用到了特化模板函数,假设叫template.h,将这个template.h文件包含在了工程中的fwd预设头文件(类似visual studio自动生成的stdafx.h),编译的时候报出一堆multiple definition的错误。 解决方法有三个:1. 在定义特化模板函数的时候,定义为extern函数,然后在template.cpp中实现。2. 定义为一个in
2012-04-21 20:28:50
503
转载 restrict关键字的使用
定义 restrict关键字是在C99标准中添加的,用于限定和约束指针。规则 它告诉编译器,所有修改该指针所指向内存中内容的操作,全都必须基于该指针;不存在其它进行修改操作的途径(通过其它变量或指针)。优点 能帮助编译器进行更好的优化代码,生成更有效率的汇编代码。测试int test_restrict(int* x
2012-04-21 19:18:28
543
原创 linux下的字节序问题总结
1. 字节顺序概念字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。大端对齐:内存的低地址位存放着高位数据;小端对齐:内存的低地址位存放着低位数据;举个例子,内存中两个连续字节中的数据为0x12 0x34,表示一个short,如果是大端对齐,这个数为0x1234;如果是小端对齐,则这个数为0x3412。2. 测试在我的开发
2012-04-09 11:05:28
3874
原创 linux下的字节序转换
BYTEORDER(3) Linux Programmer's Manual BYTEORDER(3)NAME htonl, htons, ntohl, ntohs - convert values between host and network byte orderSYNOPSIS #include uin
2012-04-09 10:27:08
1238
转载 suse下开端口的若干方法
原文地址 http://blog.sina.com.cn/s/blog_4c4a24db0100ro8j.html1.首先查看端口状态,可以使用命令-># netstat -an (若查看某个端口,后面可接端口号)2.检查服务状态使用chkconfig,如检查SSH,-># chkconfig sshd如为off,则需要打开系统服务的端口,可用chkconfig
2012-04-05 12:37:53
1297
原创 linux下库文件总结
linux下的库文件分为两种:(1)lib***.so:share object,也就是常说的动态链接库,类似windows下的dll;(2)lib***.a:静态链接库;还有以.la结尾的文件,主要描述了库文件的配置信息。动态库总结:1. 简介通常是个elf格式的文件;应用程序在执行时加载动态库,一个动态库可以被多个应用程序共享(所以叫共享库);2. 编译
2012-03-25 22:02:45
1315
原创 C++中的placement new
在写服务器程序的时候,经常会用到内存池,很多是在堆(heap)上预分配一大块内存,用空闲链表的方式来实现内存的分配与回收。在业务应用的时候,如果想用这预分配的内存来创建对象,就不能用通常的new了,而需要用到placement new构造,它可以构造对象到给出的内存上。placement new的原型如下:void *operator new( size_t, void *p
2012-03-24 22:15:14
364
原创 linux中的2>&1使用学习
在linux脚本中,经常会看到有“command > file 2>&1”这种用法,一直不太理解,今天找时间查了相关资料,总结如下:(1)1是标准输出stdout,2是标准出错stderr,>代表重定向;(2)command > file,实际上是command 1>file,linux默认就是1,一般都省略了;(3)2>&1,这个代表把stderr重定向到stdout,至于为什么会有
2012-03-24 21:51:52
488
原创 ACE中的内存管理机制学习
ACE内存分配有两种方式,分别基于ACE_Allocator基类和ACE_Malloc类。1. 基于ACE_Allocator的分配方式, ACE提供了多种Allocator分配器:分配器描述ACE_AllocatorACE中的分配器类的接口类。这些类使用继承和动态绑定来提供灵活性。ACE
2012-03-22 22:57:19
1077
原创 linux使用msgpack及测试
在网络程序的开发中,免不了会涉及到服务器与客户端之间的协议交互,由于客户端与服务器端的平台的差异性(有可能是windows,android,linux等等),以及网络字节序等问题,通信包一般会做序列化与反序列化的处理,也就是通常说的打包解包工作。google的protobuf是一个很棒的东西,它不仅提供了多平台的支持,而且直接支持从配置文件生成代码。但是这么强大的功能,意味着它的代码量以及编译生成
2012-03-20 22:59:09
6206
原创 ACE中的reactor模式学习
这两天在学习C++网络编程卷二,第二章开始讲到reactor模式,这两天结合书上的例子,写了个简单的echo server端程序,代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #incl
2012-03-18 23:52:42
1014
原创 ACE中的reactor模式学习
这两天在学习C++网络编程卷二,第二章开始讲到reactor模式,这两天结合书上的例子,写了个简单的echo server端程序,代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #includ
2012-03-18 23:35:26
190
原创 ACE_Process中的exit_code问题
今天在在测试c++ network programing中例子8.2时,碰到了一个问题:发现ACE_Processwait得到的child的exit_code不正确,测试的平台是linux 2.6.16,ACE的版本是6.0.0.写了个简单的测试代码如下:#include #include #include #include int main(intargc, ACE_TCHA
2012-03-16 00:05:44
792
原创 suse enterprise装机总结(2)
今天在公司的局域网装一台linux服务器,配置网络的时候碰到了一些问题,记录总结一下,作为对前面一篇总结的补充。linux服务器,版本linux suse enterprise,内核版本是2.6.16.60。办公网络是个小型局域网,一台无线路由器(192.168.1.1),局域网内所有的pc通过这台路由连外网;服务器安装完成之后,需要配置网络,配置的过程如下:1. Y
2012-03-11 22:26:46
435
原创 简单的spawn与expect使用
今天写一个脚本,需要与终端输出交互,学习着使用了简单的spawn与expect,感觉很方便,记录一下。1. 首先要保证linux server上安装了expect,我自己的服务器跑的是suse 10.2,比较老的版本,默认没有安装expect,下了个rpm包装上先。(现在外面跑得suse enterprise基本都是11或者12的,看来要赶紧升级了,不然下个rpm包很多都没有对应的版本)安装了
2012-01-12 00:12:35
3819
原创 linux下mysql编程链接问题
昨天写一段程序需要写db,调用了mysql的c api,编译发生了链接错误:/usr/lib/mysql/libmysqlclient.a(ssl.o):(.gnu.linkonce.d.__vt_Q25yaSSL7Message+0x8): undefined reference to `__pure_virtual'……Makefile中的链接:…… -L/usr/lib/my
2012-01-08 18:51:21
1539
原创 linux suse下mysql安装及配置
在linux suse enterprise 10下安装mysql,到mysql官网(现在是oracle的)上去下载对应版本的rpm包http://www.mysql.com/downloads/mysql/#downloads安装完成之后,rpm -qa可以看到已经安装的mysql包,我在这里安装了server、client和devel三个包。1. 安装完成之后的第一件事
2012-01-04 23:43:09
534
原创 linux下daemon进程模板
平时经常性会需要写一些daemon服务,于是就写了一个简单的脚本,利用模板文件,可以自动生成一个简单的daemon进程,包括源文件和makefile,启停脚本,只需要直接添上业务逻辑即可。使用方式:./generate_daemon.sh 。
2011-05-02 18:50:00
812
原创 suse enterprise装机总结(1
昨天和今天在基本不再用的笔记本上安装linux suse enterprise, 充分利用下淘汰下来的电脑。装的过程中碰到了不少问题,记录一下所有的过程,以后也可以参考一下: 1. 下载的iso版本:TLF-SOFT-SUSE.Linux.Enterprise.Server.v10.SP2.x86,有两个ISO文件,但是实际安装的时候只用到了第一个。刻录成光盘后直接安装,具体的安装和分区应
2011-03-13 20:12:00
375
转载 C语言经典面试试题
C语言经典面试试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2007-09-22 16:13:00
1821
原创 数字图像处理中的图像几何变化——VC代码
数字图像处理中对图像进行几何操作,内容包括:图像平移,图像旋转,图像缩放,图像转置,图像镜像等。图像平移:/************************************************************************* * 函数名称:Translation() * 函数参数: * LPSTR lpSrcStartBits,指向源DIB起始像素的指针
2007-09-06 10:33:00
1613
3
原创 图像处理中的频域的图像增强——VC关键代码实现
理想,高斯,巴特沃思高通/低通滤波函数代码 /************************************************************************** /函数名称: * LowPassFilter()* /输入参数: * LPSTR lpDIBBits - 指向需要滤波的图像像素指针 *
2007-08-31 20:11:00
1843
3
原创 数字图像空间滤波常用的函数VC代码:模板卷积处理函数,中值滤波函数
图像空间滤波常用的函数:模板卷积处理函数,中值滤波函数/************************************************************************* * /函数名称: * Template() * /输入参数: * LPSTR lpDIBBits - 指向源图像的像素指针 * LONG lmageWidth - 源
2007-08-30 14:56:00
2493
原创 数字图像处理中的辅助类:CDib类
在数字图像处理中应用到的一个辅助基础类,CDib类,提供对DIB的操作,包括装载位图,获取位图相关信息,创建调色板,绘制位图等。代码如下: // Dib.h: interface for the CDib class.////////////////////////////////////////////////////////////////////////#if !de
2007-08-23 21:16:00
2760
原创 利用SkinMagic美化VC程序详解
利用SkinMagic美化VC程序详解 这两天在网上看到给VC程序换肤的文章,自己也试了一下,因为版本的问题,忙了整整一天,才算搞出点头绪。废话不说了,下面我们一步步地来实现这个功能!(1)下载SkinMagic的开发包,我用的开发包需要下面几样东西:SkinMagicLib.lib,DETOURS.lib两个库文件;.smf文件(皮肤文件);还有个SKinMagicL
2007-08-21 16:42:00
2067
24
原创 VC应用 —— 个性化你的工具栏
VC应用 —— 个性化你的工具栏图标这几天在BBS上看到一篇文章,讲利用VC设计真彩的工具栏。其实,如果大家常用VC的话,肯定会觉得VC的工具栏的图标很丑陋,那么下面介绍的方法就可以让你给你的工具栏大变脸~~因为那是很久以前的文章,有些东西已经不太好用了,我测试了一下,改进了一些地方,下面把主要的步骤和关键内容贴出来,和大家共享了一下。^_^
2007-08-19 17:44:00
4147
2
转载 [转]七个经典推理(据说没有人能全部答对)试试看吧
这几个推理故事尽管答案有几分BT,但绝对可以对你的发散思维进行一番测试,插上你思维的翅膀,加上你缜密的逻辑,娱乐一番吧第一个故事:企鹅肉 一个人在朋友家吃饭,问朋友这餐吃的是什么肉?朋友说是企鹅肉,他就号啕大哭自杀了。为什么? 第二个故事:跳火车 一个人坐火车去邻镇看病,看完之后病全好了。回来的路上火车经过一个隧道,这个人就跳车自杀了。为什么? 第三个故事:水草 有个男的跟他女友去
2007-08-11 19:41:00
570
转载 [转]C++指针详细解析——史上最精彩指针文章
一 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr; (4)int (*
2007-08-10 10:26:00
1828
1
转载 [转]高质量C++/C编程指南 -- 其它编程经验
其它编程经验11.1 使用const提高函数的健壮性看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const是constant的缩写,“恒定不变”的意思。
2007-08-09 15:04:00
468
转载 [转]高质量C++/C编程指南 -- 类的构造函数、析构函数与赋值函数
类的构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如A(voi
2007-08-09 13:54:00
502
转载 [转]高质量C++/C编程指南 -- C++函数的高级特性
C++函数的高级特性对比于C语言的函数,C++增加了重载(overloaded)、内联(inline)、const和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const与virtual机制仅用于类的成员函数。 重载和内联肯定有其好处才会被C++语言采纳,但是不可以当成免费的午餐而滥用。本章将探究重载和内联
2007-08-08 14:53:00
416
转载 [转]高质量C++/C编程指南 -- 内存管理之二
内存管理7.5 free和delete把指针怎么啦? [此处原文缺]7.7 杜绝“野指针”“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。 “野指针”的成因主要有
2007-08-08 10:18:00
391
转载 [转]高质量C++/C编程指南 -- 内存管理之一
内存管理欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody
2007-08-07 21:26:00
441
转载 UD VS NE战术篇[转自replays.net]
首先说一下2BCRush。合理有效的进行Rush,是每一个合格的UDer对战NE的基本功。其实这一波Rush的目的比较简单。2BCRush是为了对方的AC。AC的作用,最主要有2个,其一是前中期N英雄等级提升全靠这几个AC的伤害输出,尤其是次发英雄;其二是对抗U的天地双鬼时,面对无甲穿刺伤害的石像鬼的骚扰或者正面进攻,AC的优势就体现出来了,会给U造成很大的麻烦。是不是2BCRush就真的
2007-07-21 21:06:00
690
1
转载 CMOS 图像传感器在光栅传感器中的应用
1 光栅传感器原理和结构1.1 基本原理在玻璃或其他材料上, 像刻度尺那样刻出一系列黑白相间、间隔相同的细小条纹, 没有刻划的白的地方透光, 刻划的发黑不透光, 这就是光栅。也有在金属上刻线, 利用光反射工作的光栅。按形状和用途光栅可分为长光栅和圆光栅。长光栅用于位移检测,圆光栅用于角度的测量, 和位移测量原理基本一致,也是借助于莫尔条纹。为便于叙述, 本文的分析以利用长光栅的位移传感器为例。光
2007-07-09 11:01:00
2069
2
原创 java数字图像处理常用算法
前些时候做毕业设计,用java做的数字图像处理方面的东西,这方面的资料ms比较少,发点东西上来大家共享一下,主要就是些算法,有自己写的,有人家的,还有改人家的,有的算法写的不好,大家不要见笑。一 读取bmp图片数据// 获取待检测图像 ,数据保存在数组 nData[],nB[] ,nG[] ,nR[]中 public void getBMPImage(String so
2007-07-08 16:39:00
2494
1
原创 java socket应用篇 之 简单聊天程序
java socket 之 简单聊天程序 这两天一直在学习java中的socket。前几天学习了一个简单的聊天程序,我尝试着自己写了一个具有可视化界面的版本,用到了简单的多线程,但是服务器端只能接受单一客户端,还没有做到接受多个客户端。另外,在聊天的信息显示上还不够完美,比较粗糙,希望大家多多指教
2007-06-12 17:56:00
2395
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人