- 博客(11)
- 收藏
- 关注
原创 Windows, VxWorks下telnet的实现(2)
为了更好地说明问题,这里给出telnet的原理图:如图,telnet的机制可以描述为:客户端远程登录到主机,并与主机的shell进行交互,得到主机的服务的协议过程。我将这个过程分为5部分:1)远程设备;2)选项协商;3)传输链路;4)虚拟终端;5)Shell的I/O重定向;下面分别说明:1)远程设备。也就是客户端的tty,如前章节所说,客户端相当于主机的一个tt
2007-02-11 02:01:00 2818
原创 Windows,VxWorks下telnet的实现(1)
有幸在Windows,VxWorks下分别实现了telnet,不同的是在VxWorks下实现的telnet并非基于TCP/IP,而是基于一种UART(485)协议。首先有两个概念要说清:tty和pty。tty指输入/输出设备,一般将它理解为对应的标准输入(键盘等)以及标准输出(屏幕等)设备,可以理解为直接对应相关的硬件,它与硬件之间是透明的。pty是指虚拟终端。它是这样的一种抽象终端:它所连接
2007-02-04 22:45:00 5865 1
原创 修复Windows任务栏
最近发现任务栏莫名的乱,出现2个相同的图标状态,很不爽。要完全解决除非重装系统。。。。但,好像会很痛苦,所以使用下面的方法暂时解决先:@echo offreg delete "HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/explorer/StuckRects2" /freg delete "HKEY_CURRENT_U
2007-01-29 23:00:00 1114
原创 Boost 正则表达式库regex使用手记
拿到Boost库首先是如何将该库安装到现有的工作环境,并进行学习、开发应用。由于Boost库不同于一般的软件安装方法,它提供的是C++源码以及库(Lib)。安装的目的就是将这些库和源码与你的工作环境关联起来。我想除了代码的释放和拷贝以外还有编译出Lib,放到环境的库文件夹下,是否注册就要看与之相关的Makefile。 粗略看了一下相关的Doc,里面介绍了如何编译和安装该库。
2006-11-28 21:33:00 1492
翻译 Win32 Hooks
译文Win32 钩子机制在微软的Windows操作系统中,钩子(hook)是一种机制。该机制提供某个函数使各种事件(消息,鼠标动作,击键)到达应用程序之前被截获。在某些情况下,该机制提供的函数能够作用于各种事件,包括修改或丢弃它们。接收各种事件的函数称为过滤函数,它们依据截获的事件分类。例如,某一过滤函数可能只接收所有的键盘和鼠标事件。如果Windows要调用一个过滤函数, 该函数必
2006-11-05 20:16:00 1380
原创 CEdit按键处理
CEdit按键处理的消息相应主要函数: 1)OnKeyDown,消息为:WM_KEYDOWN。该函数处理按键的“Press”事件,事件产生后消息流到CEdit中,则使用OnKeyDown函数进行处理。所以处理代码在OnKeyDown的重载函数中实现。如:void OnKeyDown(int nChar, int nReptCnt, int nFlags)
2006-11-05 10:26:00 1953
原创 C/C++进阶[5]
一个很有趣的应用关键字:迭代问题、一维数组范围比如有一个结构,它是这样定义的:typedef struct MyStuc{int nID;char *pszText;} MyStuc;那么MyStuc的一个实例可以是:MyStuc mt[] = {{0, "Text 1"},{1, "Text 2"},{2, "Text 3"}};这样的话
2006-06-20 01:17:00 685
原创 C/C++进阶[4]
Point 6 位运算 我们都很清楚,位运算涉及到数据的二进制表示,以及数据的大小或者说长度。在进行位移操作的时候我们不得不关注变量的长度,因为一般的位移操作(>>或 int x = 1; x >>= 1; x = ?结果x = 0。其它的考虑下面的例子:typedef unsigned int FIND_T;#defin
2006-03-05 11:36:00 802
原创 C/C++进阶[3]
Point 4 通用指针void * 显然您知道void *是指向任何对象的通用指针。这一点给我们带来很大的方便。考虑下面的例子:typedef struct CLISTLINK{ void *pvData; struct CLISTLINK* pre; struct CLISTL
2006-03-05 11:30:00 811
原创 C/C++进阶[2]
Point 2 typedef与define 从上小点讨论认为define为标识符代换使用。下面的例子您肯定很清楚: #define SQU(x) ((x)*(x)) //定义((x)*(x))为SQU(x),编译器遇到SQU(x)后自动替换为((x)*(x))。 typedef针对类型的重命名而言的。看下例:
2006-03-05 11:23:00 759
原创 C/C++进阶[1]
C/C++进阶Point 1 预处理程序与宏 我们都很清楚,宏的作用是给标识符或常量定义另外的名字(代号)。而预处理宏呢?看下面的例子: //------------------file.h----------------- #ifndef _CLIST_H_#define _CLIST_H_//bod
2006-03-05 11:17:00 1108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人