- 博客(28)
- 资源 (1)
- 收藏
- 关注
转载 Proxy源代码分析--谈谈如何学习linux网络编程
Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该是Windows的优点)相比,后者无疑在易操作性上更胜一筹。但是为什么又有那么多的爱好者钟情于Linux呢,当然自由是最吸引人的一点,另外Linux强大的功能也是一个非常重要的原因,尤其是Linux强大的网络功能更是引人注
2012-03-05 15:27:41
241
转载 getaddrinfo函数详解
有这样一个C/S程序,server提供一个叫做ruptime的服务,功能是当有客户端连接时调用uptime程序,并将结果发送到client。可是现在的问题是,这个服务系统本来是没有的,所以调用getaddrinfo的时候会返回如下错误:代码:Servname not supported for ai_socktype我觉得可能是需要编辑/etc/service文件把自己这个服务加进
2012-03-05 15:22:53
434
原创 双边滤波图像增强技术
<br /> 在图像处理领域中,滤波是图像增强的一项非常重要的手段,其基本原理就是将图像中的每个点与其相邻的几个像素点的像素值作邻域运算,即进行加权平均卷积运算。很显然,当图像中存在明显的边缘信息时,通常的邻域运算必然会导致图像中边缘点的像素值发生变化,使图像的边缘变得模糊不清。为了改善这一现象,提出了双边滤波的方法,双边滤波器模板的卷积权值的选取不仅取决于普通低通滤波的像素邻域位置关系,同时还由相邻像素的亮度信息所决定。用模板对图像的边缘进行平滑处理,在有效去除噪声的同时,还能很大程度地保持并加强
2010-07-10 11:59:00
2051
1
原创 详聊IImage的图片显示
<br />IImage是WinCE5.0之后才加入的COM组件,用处正如其名,更为方便显示图片.WinCE 5.0之后,我们就可以喜新厌旧,抛弃imgdecmp,转投IImage,呵呵~虽然个人觉得这两个解码,论速度不相伯仲,都是一样的----慢,特别是绘制大图片的时候还有限制,但毕竟有总好过无,所以我们就来看看今天的主角吧!<br /> <br /> 用IImage来显示图片真是异乎寻常的简单,无非就是调用几个函数而已: IImage * m_pImage;<br /> IImag
2010-06-24 20:00:00
262
转载 线程中CreateEvent和SetEvent及WaitForSingleObject的用法(转)
首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。 WaitForSingleObject()等待,直到参数所指定的OBJECT成为发信号状态时才返回,OBJECT可以是EVENT,也可以是其它内核对象。当你创建一个线程时,其实那个线程是一个循环,不像上
2010-06-20 21:33:00
261
原创 PostMessage 和SendMessage的区别
<br />PostMessage 和SendMessage的区别主要在于是否等待其他程序消息处理。PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行。这两个函数的返回值也不同,PostMessage的返回值表示 PostMessage函数执行是否正确,而SendMessage的返回值表示其他程序处理消息后的返回值。 <br /> <br />1. SendMessage函数要等到消息被处理后才返回 <br
2010-06-17 13:09:00
185
转载 深度解析VC中的消息传递机制
<br />什么是消息?<br /><br /> 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。<br /><br /> 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标
2010-06-04 18:49:00
181
原创 windows mobile 定制全屏窗口与菜单栏
定制全屏窗口: /* 定制全屏窗口 */ SHINITDLGINFO shidi; HWND hDlg = m_hWnd; // Create a Done button and size it. shidi.dwMask = SHIDIM_FLAGS; shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR; shidi.hDlg = hDlg; ::SHInitDialog(&shidi); /* 隐藏键盘 */ HWND hWnd = ::FindWindo
2010-06-01 21:58:00
346
转载 wchar_t,char,std::string,std::wstring,CString转换
wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString….一些转换函数,主要针对宽字符。字符串是根本啊,要好好掌握了#include // 使用CString必须使用MFC,并且不可包含#define _AFXDLL#include using namespace std;//———————
2010-05-29 12:00:00
1085
转载 关于Char* ,CString ,WCHAR*之间的转换问题
GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*。我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *。得益于网上牛人们的总结,我用到以下几种基本方法去实现三者间的转换:char * 转WCHAR *:::MultiByteToWideChar(CP_ACP,0,(const char *)res,
2010-05-29 11:17:00
356
转载 WINCE下将BMP格式图片转换为JPG格式
实现代码如下:/**函数介绍:将文件加载到内存流中*入口参数:tszFilename:表示要打开的文件*出口参数:ppStream : 表示内存流,将文件中的内容输出到此内存流中*返回值:S_OK :表示成功,否则失败*/HRESULT CreateStreamOnFile(const TCHAR * tszFilename, IStream ** ppStream)
2010-05-28 18:04:00
896
2
转载 EVC实现WIN CE下截屏并且保存到文件[By Erran]
在WinCE中, 由于WinCE的精简,有很多win32下的标准API不支持,所以有很多在vc上能够轻易实现的功能, 在evc中有点难度,必须变通一下,就拿截取屏幕来说,一个常用的函数GetDIBits在wince就Unsupported.当时为了实现这个功能,颇费了了一番心血,当然其主要还是因为对api不是很熟悉。最初使用的截屏方法说来还真有些丢人,一个一个点的取得颜色值,再保存到bmp文件
2010-05-24 11:55:00
272
转载 WINCE下利用CFONT类创建字体
实现代码: //新建了一个倾斜的Arial字体,字体带有中线,在屏幕上打印出“周铭雷” CFont font; VERIFY(font.CreateFont(50,30,270,0,FW_NORMAL,FALSE,FALSE,1,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DE
2010-05-21 14:54:00
521
转载 Windows mobile 手机文件夹详解
Profiles-日程表和任务两个程序的记录文件夹,日程表和任务里的增加内容都在里面Storage-手机内存,相当电脑分盘Storage Card- MiNi SD卡内容Temp-临时文件夹Windows-手机系统文件夹------------------->>>>>>以下是Storage的各个文件夹解释---------Storage/Application Data下:1。/Storage/A
2010-05-02 16:43:00
496
原创 UpdateWindow()和Invalidate()有什么区别?
UpdateWindow直接发送WM_PAINT消息到窗口。 而Invalidate发送WM_PAINT消息到消息队列,当下一次OnPaint()的时候才刷新窗口。 相比较,UpdateWindow刷新速度要快点。 Invalidate()是用来发送WM_PAINT的, UpdateWindow()也是用来发送WM_PAINT的,只不过UnpdateWindow()
2010-04-29 18:16:00
790
转载 WM5.0中的自定义菜单
VS2005的菜单编辑器就是这样设计的,也就是在菜单编辑器中编辑的只是菜单的内容,这些内容是保存在rc文件中的,而菜单条是作为RCDATA保存在rc2资源文件中。在WM5.0中,无论是ppc中的菜单还是sp中的菜单,都是一样的,即支持左右软键,左右软键分别可以弹出一个菜单。所以,微软认为这个东西不是菜单,是工具条,而真正的菜单是左右软键弹出的那个东西。所以,在菜单编辑器中编辑的是左右软键弹出的
2010-04-29 17:19:00
291
转载 c语言目录操作
c语言目录操作- 这里给你提供一些C的目录操作函数,原型声明所在头文件为dir.h、dos.h,仅供参考:int chdir(char *path) 使指定的目录path(如:"C://WINDOWS")变成当前的工作目录,成功返回0int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功返回0pathna
2010-04-11 14:09:00
229
转载 定义C/C++全局变量/常量几种方法的区别
在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能非
2010-04-05 10:41:00
190
转载 C++文件流
C++文件流:fstream // 文件流ifstream // 输入文件流ofstream // 输出文件流//创建一个文本文件并写入信息//同向屏幕上输出信息一样将信息输出至文件#include#includevoid main(){ ofstream f1("d://me.txt"); //打开文件用于写,若文件不存在就创建它 if(!f1)return;
2010-03-13 14:58:00
197
转载 C枚举类型的使用方法
1. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2. 枚举变量的说明如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义
2010-03-12 14:22:00
175
转载 C语言文件操作函数(ANSI)详解(二)
clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #include 定义函数 int fclose(
2010-03-12 14:20:00
234
转载 C语言文件操作函数(ANSI)详解(一)
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* File status fla
2010-03-12 14:18:00
228
转载 c语言文件读写方式
文件使用方式 意义 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打开或建立一个二进制文件,只允许写数据 “ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+” 读写打开或建立一
2010-03-11 23:15:00
282
转载 C++中vector的用法
注意,在使用前要包含vector对应的头文件: #include vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。我们将在第9章更详细地介绍容器。 使用vector之前,必须包含相应的头文件。本书给出的例子,都是假设已作了
2010-03-09 10:17:00
199
转载 opencv 矩阵学习
1.初始化矩阵:方式一、逐点赋值式:CvMat* mat = cvCreateMat( 2, 2, CV_64FC1 );cvZero( mat );cvmSet( mat, 0, 0, 1 );cvmSet( mat, 0, 1, 2 );cvmSet( mat, 1, 0, 3 );cvmSet( mat, 2, 2, 4 );cvReleaseMat( &mat );方式二、连接现有数组式:
2010-02-27 21:39:00
259
转载 C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout };class ClxDerive
2010-01-31 15:02:00
166
原创 Linux下的命名规则
Linux下建议的命名规则如下。 (1)变量名必须有一定的意义,并且意义准确。例如有一个变量用于保存图书的数目,可以命名为number_of_book或者num_of_book。不建议使用i,因为它没有意义。也不建议使用number或book,因为意义不准确。 (2)不建议大小写混用。如定义一个计数变量,int nCount;这在Windows中是一个很好的变量名,其中nCount的首字母
2010-01-27 17:42:00
566
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人