自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smstong的成长轨迹

关注Internet,专注OS。

  • 博客(465)
  • 资源 (30)
  • 收藏
  • 关注

原创 UNDO类型日志系统浅浅理解

日志系统是保证数据库管理系统正确执行事务的基本机制。根据作用的不同,日志系统分为UNDO和REDO两种,本文对UNDO类型日志的原理进行简单模拟说明。1 UNDO日志要求日志记录了数据修改之前的旧值;数据刷盘之前,把日志刷盘;(一致性)数据刷盘之后,把日志COMMIT刷盘。(持久性)2 UNDO日志缺陷UNDO日志提供了足够的信息可以保证事务的一致性和持久性。但是,为了保持一致性,采取的是被

2016-06-06 17:30:00 6100

原创 再谈终端设备

1 PC的键盘和显示器不是终端设备While early IBM PCs had single color green screens, these screens were not terminals. The screen of a PC did not contain any character generation hardware; all video signals and video

2016-05-31 15:41:14 5716

转载 Linux终端解密(The TTY demystified)

对于Unix类系统,TTY的概念至关重要,然而却很难找到合适的文档来参考。偶遇一片洋文,恰好介绍TTY,觉得不错,转载过来了。The TTY subsystem is central to the design of Linux, and UNIX in general. Unfortunately, its importance is often overlooked, and it is dif

2016-05-30 15:49:51 8379

原创 注意区分:JSON字符串和Javascript对象字面量

JSON是基于Javascript语法的一个子集而创建的,特别是对象和数组字面量语法。正是由于JSON的这种特殊来历,导致很多Javascript程序员往往会混淆Javascript对象字面量和JSON。1 JSON是纯文本,不是Javascript代码JSON是作为XML的替代品而出现的,它本身是一种跨平台的数据表示标准,是纯文本字符串,不局限于任何编程语言。Javascript代码则必须需符合其

2016-05-03 14:36:58 9697

原创 汽车节气门为何容易脏?

1 节气门很重要,也很容易脏 节气门作为发动机的喉咙,其重要性不言而喻。可这个东西却偏偏很容易变脏,影响开度调节的平顺性和准确度,进而影响发动机性能。由此而来的是,清洗节气门成了汽车常规保养的必备项目。那么节气门为甚么容易脏呢?它上面脏乎乎的油渍究竟是哪里来的呢?本文以2009年1.6L速腾车为例对此进行分析。先来看看节气门的样子,有图有真相。  看到了吧,节气门和进气软管的连接处的外表已经脏乎乎

2016-04-30 16:31:50 24345 2

原创 让VIM彻底告别乱码

1 字符编码基础知识字符编码是计算机技术中最基本和最重要的知识之一。如果缺乏相关知识,请自行恶补之。这里仅做最简要的说明。1.1 字符编码概述所谓的字符编码,就是对人类发明的每一个文字进行数字化表示。最经典的ASCII编码就是西方人发明的针对英文字符的编码方法,包括26个英文字母、数字、标点、特殊字符等。问题是,这种编码的范围是0-127,只能对128个字符进行编码。当计算机来到其他国家后发现,除

2016-04-29 11:47:27 51748 6

原创 打算使用纯C开发一个数据结构及算法库,欢迎大家指正

1 项目由来使用了一段时间的C++强大的STL库,也看过一些STL源码剖析的书籍,可受能力所限,始终未能掌握。每次使用STL都是提心吊胆,虽然通过STL完成了一些项目,但总是心里没底,生怕编译器背后做了什么小动作。再加上STL属于编译器多态,虽然生成的代码运行效率很高,但是在跨编译器甚至统一编译器的不同版本时,往往不怎么顺利,一大堆外星人才能看懂的编译警告,让人不寒而栗。虽然本人最早接触的计算机编程

2016-04-27 19:38:34 9474

原创 关于VIM自动缩进失效(filetype indent on无效)的详细分析

最近用vim编辑一些xml和html文件,在某些版本的VIM上出现了不能根据文件类型自动缩进的问题,经过多次试验摸索,总算是找到了症结所在,特此记录下来供大家参考。1 vim 自动缩进原理vim不依赖于插件的情况下也能支持几种简单的缩进,例如:set cindent:set smartindent:set autoindent这些缩进方式是与文件类型无关系的,对于程序员来说用处不大,毕竟向我这样

2016-04-23 21:20:48 11748 1

原创 发布一个基于CSDN Code的学习测试仓库

使用CSDN Code代码托管平台有一段时间了,今天新建立了一个公开的仓库https://code.csdn.net/smstong/learngit.git,供大家测试合并请求等协作流程。希望大家踊跃参与!

2016-04-18 11:23:15 6895

转载 数据库日志系统原理详解

转自:http://blog.csdn.net/whyangwanfu/article/details/1926367发现这篇文章写的很好,转载过来了。  日志系统原理     作者:杨万富 一:事务系统1.事务的工作模型   事务必须满足原子性,所封装的操作或者全做或者全不做。事务管理系统需要做两件事,1)让日志系统产生日志,2)保证多个事务并发执行,满足ACID特性。   事务系统工作模型,见

2016-04-14 13:17:59 11795

转载 How do you build a database?

非常简短的文字,却异常明了的说明了一个数据库管理系统的核心原理,原文来自原文。 Its a great question, and deserves a long answer.Most database servers are built in C, and store data using B-tree type constructs. In the old days there was a

2016-04-14 10:47:43 5612

原创 C语言实现的数据结构之------哈希表

1 哈希表原理这里不讲高深理论,只说直观感受。哈希表的目的就是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址。试想一下,如果从链表中根据关键字查找一个元素,那么就需要遍历才能得到这个元素的内存地址,如果链表长度很大,查找就需要更多的时间.void* list_find_by_key(list,key){ for(p=list;p!=NULL; p=p->next){

2016-04-13 19:27:32 54832 16

原创 Parallels Desktop 的Coherence View彻底模糊了主机和虚机的界限

今天在Mac OS X Ei上安装了Paralles Desktop 11,被这个神奇的软件震惊了。它实现了主机OS X和虚机Windows10的完全融合,在Coherences模式下,完全感觉不出主机和虚机的界限。1 在OS X中执行Windows程序在OS X中,为虚机Windows10上的每个应用程序都生成了对应的Mac包装app,存放在Applications目录下: 而且自动为特定后缀名

2016-04-13 10:58:40 6810

原创 使用U盘全新安装Mac OS X EI Capitan

这几天收拾了一下闲置很久的Mac Mini,更换了SSD固态盘,把原来的机械盘作为第二硬盘重新安装,而后重新安装了最新的操作系统Mac OS X EI Capitan。久不动手,必然生疏,这次安装系统又练了一下手,顺便记下来,供自己参考,如果大家能从中受益,颇为欣慰。1 Mac系统安装理论知识Mac系统已经和Windows一样,运行在了Intel的X86架构PC硬件上,只不过底层的BIOS必须是EF

2016-04-12 10:02:36 46961

原创 对程序设计的一些感悟

从2002年接触C语言开始,不知不觉程序设计已经伴随我14年了,这期间或多或少的使用了C,C++,C#,Java,PHP,JavaScript, bash, VBA这些常见的开发语言,可悲的是才疏学浅,只是略懂而已。1 程序设计的本质没变程序=数据结构+算法,这是对程序最本质的、最切中要害的、最简洁的阐述。 一直以来,我有一个习惯,就是在理解一个抽象概念的时候,一定要找到这个概念的一个具体实现。数

2016-03-22 11:15:24 2880

原创 C/C++,Java,PHP,JavaScript,Json数组、对象赋值时,最后一个元素后面是否可以带逗号?

1 C,C++,Java,PHP都能容忍末尾的逗号C,C++,Java中对数组赋值时,最后一个元素末尾的逗号可有可无。下面两行代码对这些语言来说是等效的。int a[] = {1,2,3}; /* 正确 */int a[] = {1,2,3,}; /* 正确 */PHP这一点也继承了C的特点,下面的两行代码等效。$a = array(1,2,3); /* 正确 */$a = a

2016-03-22 09:49:27 4604

原创 发动机外特性曲线(工况图)疑惑

今天研究了一下发动机理论,本着程序员精神,仔细分析了一下发动机工况图,头脑中出现了一个难以解释的疑惑,还请大家来帮忙答疑解惑。1 发动机外特性理论 当汽油机的节气门开度一定,其有效功率、有效转矩、耗油率等性能指标随转速变化而变化的关系成为发动机的速度特性。节气门全开时的速度特性成为外特性。 测取方法:节气门保持不变,改变发动机的外部负荷,在不同转速下测出各稳定工况的有效功率、有效转矩、耗油率,并绘

2016-03-10 13:57:51 31629 7

原创 C语言隐式函数声明带来的错误实例(当隐式声明遇到printf)

关于C语言隐式函数声明的基本问题,请参见我的博文万恶之源:C语言中的隐式函数声明。 下面是最近遇到的一个实例之一。 client_sock = accept(server_sock, (struct sockaddr*)&client_name, &client_name_len); printf("from %s:%d\n", inet_ntoa(client_nam

2016-03-01 14:55:52 10145 1

原创 C语言可变参函数的实现

1 C语言中函数调用的原理函数是大多数编程语言都实现的编程要素,调用函数的实现原理就是:执行跳转+参数传递。对于执行跳转,所有的CPU都直接提供跳转指令;对于参数传递,CPU会提供多种方式,最常见的方式就是利用栈来传递参数。C语言标准实现了函数调用,但是却没有限定实现细节,不同的C编译器厂商可以根据底层硬件环境自行确定实现方式。函数调用的一般实现原理,请参考我的博文 C语言中利用setjmp和lon

2016-02-26 19:11:56 10590 6

原创 C语言中利用setjmp和longjmp做异常处理

错误处理是任何语言都需要解决的问题,只有不能保证100%的正确运行,就需要有处理错误的机制。异常处理就是其中的一种错误处理方式。1 过程活动记录(Active Record)C语言中每当有一个函数调用时,就会在堆栈(Stack)上准备一个被称为AR的结构,抛开具体编译器实现细节的不同,这个AR基本结构如下所示。 每当遇到一次函数调用的语句,C编译器都会产生出汇编代码来在堆栈上分配这个AR。例如下面

2016-02-24 14:55:46 7898

原创 C/C++程序开发中实现信息隐藏的三种类型

无论是模块化设计,还是面向对象设计,还是分层设计,实现子系统内部信息的对外隐藏都是最关键的内在要求。以本人浅显的经验,把信息隐藏按照程度的不同分成(1)不可见不可用(2)可见不可用(3)可见可用。1 不可见不可用就是说模块内部的变量、结构体、类定义对外部而已完全隐藏,外部对此一无所知。常用的实现方法就是利用不透明指针,请参见我的博文C语言开发函数库时利用不透明指针对外隐藏结构体细节。这种方法同样适用

2016-02-21 12:52:29 6392

原创 C语言开发函数库时利用不透明指针对外隐藏结构体细节

1 模块化设计要求库接口隐藏实现细节作为一个函数库来说,尽力减少和其调用方的耦合,是最基本的设计标准。C语言,作为经典“程序=数据结构+算法”的践行者,在实现函数库的时候,必然存在大量的结构体定义,接口函数需要对这些结构体进行操作。同时,程序设计的模块化要求库接口尽量少的暴露其实现细节,接口参数尽量使用基本数据类型,尽量避免在形参中暴露库内结构体的定义。2 隐藏结构体的两种方法以笔者粗浅的认识,有两

2016-02-21 12:15:24 6304 2

原创 纯C语言实现简单封装继承机制

0 继承是OO设计的基础继承是OO设计中的基本部分,也是实现多态的基础,C++,C#,Objective-C,Java,PHP,JavaScript等为OO而设计的语言,其语言本身对实现继承提供了直接支持。而遵循C/Unix设计哲学的语言,从不限定编程风格,而且提供了实现OO的基本支持。下面我们就来看看如何用C语言实现继承。1 内存布局层面上继承的含义如今几乎所有程序员都知道继承的抽象含义,对于被用

2016-02-21 12:09:53 11667 6

原创 纯C语言简单模拟C++的虚函数表

多态,面向接口编程等设计方法并没有绑定到任何特定的语言上,使用纯C也可以实现简单的多态概念。下面给出一个非常简单粗糙的例子,只为说明概念。父类Animal定义 文件:animal.h#ifndef ANIMAL_H#define ANIMAL_H/* 方法表, 类似于C++的虚函数表 */typedef struct vtable vtable;struct vtable{ v

2016-02-15 18:14:37 7890 3

转载 1987年C语言乱码大赛之最优秀单行代码

转自:http://blog.sina.com.cn/s/blog_6adee4450100m6o9.html看这行代码:printf(&unix["\021%six\012\0"], (unix)["have"] + "fun" - 0x60);看下面解释:首先看一段代码:代码:#includeint main(){ int a[5]={1,2,3,4,5}; prin

2016-02-04 19:24:40 7963

原创 配置文件格式用哪个?目录+纯文本文件,XML,SQLite

稍具规模的软件都会需要一个配置文件来支持软件的运行。目前常见的配置文件格式有纯文本,XML,SQLite,自定义二进制格式,如何进行选择呢?1 纯文本——永远不会失效的文件格式文本化是传统Unix哲学的教条之一,可见其巨大威力。大多数类Unix系统的软件配置文件都是采用了纯文本格式。例如/etc/inittab, /etc/fstab, httpd.conf等等。1.1 优点(1)可读性强 配置

2016-01-27 13:25:28 4744 3

原创 万恶之源:C语言中的隐式函数声明

1 什么是C语言的隐式函数声明在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下面是一个例子:int main(int argc, char** argv){ double x = any_name_function(); return 0;}单纯的编译上述源代码,并没有任何报错,只是在链接阶段因为找

2016-01-15 14:49:33 41664 5

原创 C/C++语言中变量作用域:局部变量,全局变量,文件级变量

C/C++语言中的变量分为全局变量和局部变量。这种划分方式的依据是变量的可见范围或者叫做作用域。1 局部变量局部变量指的是定义在{}中的变量,其作用域也在这个范围内。虽然常见的局部变量都是定义在函数体内的,也完全可以人为的增加一对大括号来限定变量作用域。如下所示:void f(){ float x = 0; { int a; }}别小看这个作用域问题,这对

2016-01-14 15:03:49 13184 4

转载 老OpenGL程序如何更新到新OpenGL(版本3.1及以上的Core Profile)OpenGL: Transition to Core Profile Introduction

IntroductionSignificant groups of OpenGL features were marked as deprecated when the 3.2 spec was published in December 2009, resulting in two different OpenGL profiles:The Core Profile, which contain

2015-12-23 09:39:05 17001

原创 Systemd启动图形界面过程

1 启动命令systemctl isolate graphical.target2 启动过程:文件:/etc/systemd/system/graphical.target 来自:systemd包 内容:[Unit] Description=Graphical Interface Documentation=man:systemd.special(7) Requires=multi-us

2015-12-19 20:50:08 6959

原创 OpenGL边用边学------2 经典照相机模型

实际照相步骤1 布置场景和调整照相机位置3 选择镜头对焦Focus4 按下快门5 在电脑窗口中欣赏图片OpenGL的相机模型0 确定胶片位置1 确立场景世界坐标系2 在世界坐标系中确定相机位置与方向3 在世界坐标系中建立物理世界模型4 视图变换与模型变换的抉择5 在照相机坐标系中确定可视范围对焦投影变换6 调用glBegin glEnd拍照OpenGL相机模型与实际相机的

2015-12-14 16:39:42 11526 4

原创 OpenGL边用边学------2 OpenGL状态、视口设置

OpenGL的状态管理机制视口与视口坐标系概念测试视口设置1 移动视口2 多视口视口小结1 OpenGL的状态管理机制从前面的最简单例子可以看出,我们几乎没有进行任何关于颜色和坐标系的配置,OpenGL就已经能够实施渲染了。这是因为OpenGL本身管理了很多渲染时需要的状态数据,并且在初始化时自动设置了合理的默认值。例如,默认的清屏颜色就是黑色,这才是我们看到窗口客户区呈现黑色的原因。Op

2015-12-14 08:47:12 6396

原创 OpenGL边用边学------1 VS2015最简单OpenGL设置代码

使用VS设置向导建立Win32应用程序框架初始化窗口OpenGL渲染环境Windows平台下开发OpenGL程序,最常用的还是使用VS环境,glut并不常用。作为《OpenGL边用边学》开篇第一文,先解决在VS环境下设置OpenGL的问题。1. 使用VS设置向导,建立Win32应用程序框架这个步骤不再多说了,鼠标点几下就可以完成。完成之后编译运行,确保自动生成的项目可用。2. 初始化窗口OpenG

2015-12-12 20:21:55 6144

原创 如何让软件绑定计算机硬件

软件绑定计算机硬件标识是不少软件采用的防拷贝方法。然而如何确定计算机硬件的唯一标识却不是简单的事情。下面是常采用的方法及其优缺点。1 计算机唯一性标识的方法1.1 CPU序列号可用性目前存在的CPU几乎都支持CPUID指令。这个指令不仅可以获取CPU生产厂商等基本信息,还可以获取其他有关CPU的硬件信息,包括CPU序列号。首先需要说明的是,CPU批号和CPU序列号是不同的东西,同样型号的CPU具有相

2015-11-15 12:35:01 22937 1

原创 亲历的几个糟糕的应用层通信协议设计

去年和今年分别参与了两个公司的项目,这两个项目都涉及到了通信方面的程序设计,或者是以太网络通信,或者是串口通信。凡是通信就必须要有通信协议,个人认为协议的设计是个非常严肃的工作,需要理解业务需求和掌握基本的协议设计知识。但是从这两个项目来看,其协议的设计可以说是 糟糕到了极点。下面就其糟糕的设计之处予以批判。1 糟糕设计之一:消息格式“包头+数据+包尾”与UDP不同,TCP通信属于流式通信,没有消息

2015-10-15 11:20:05 9492 7

原创 如何区分 const char * p, char * const p, const char * * p?

C++之父Bjarne在他的《The C++ Programming Language》里面给出过一个助记的方法: 把一个声明从右向左读。 遇到 * 读成 pointer to。估计C编译器也是按照这个方法来解析的。char ** p1; // pointer to pointer to char const char **p2; // pointer to

2015-10-11 17:30:27 2120

原创 对C++的一点抱怨

一段时间不写C++代码了,写起来感觉有些陌生了,特别是对于C++的模板实现更是心中没底,各种错误出现、效率底下让我不得不有些后悔当初项目采用了C++并且使用了STL。然而毕竟项目已经成型,完全推倒并用纯C重构在时间上和精力上已经不太可行。选择一种语言,就像是选择一个爱人,即使后来觉得不太称心,还是要坚持到最后。好在语言的选择只是在一个项目上,随着项目的结束而结束;而爱人是一辈子,应该更加慎重抉择:)

2015-10-10 15:49:30 1973 2

原创 利用Apache的转发模块实现反向代理服务器

问题又来公司的LAMP服务器使用Apache的VirtualHost功能部署了多个拥有独立域名的网站。httpd.conf配置文件部分如下:# 省略本文无关部分Listen 80# www.xxx.com<VirtualHost *> ServerAdmin xxx@126.com DocumentRoot "/var/www/xxx" ServerName www.xx

2015-10-08 19:28:37 29076 4

原创 如何下载VS2015离线安装包

进入微软VS官网,下载页只有在线安装的选项,没有离线安装的包可以直接下载。以前的解决方法是去查找下载ISO格式的包。其实没有必要这么麻烦。在线安装的这个小程序,同样具有下载软件包而不安装的功能。那就是在命令行上执行它,并添加 /layout参数。(官网上的帮助说明可以查到,仔细阅读官网确实管用。)剩下一个问题。VS2015社区版虽然是免费的,但是需要联网激活,不联网的机器如何激活呢?希望有经验的同

2015-09-14 09:46:56 22847 1

原创 PuTTY+Xming实现X11的ssh转发

需求分析实验环境配置步骤1 需求分析有些Linux程序还是不能完全离开窗口环境,或者说离开后操作不方便。其中Oracle就是这样一个程序,其工具程序大多数能够在纯命令行静默执行,如 OCI,DBCA,NetCA等,但是工作在图形界面时更加方便。为此,需要利用X11的XServer和XClient跨网工作原理进行远程显示。而更加方便的是,SSHD远程协议完全支持对X11协议的转发

2015-06-16 19:26:53 20930 2

探测IP小工具

通过捕获ARP来分析得出本子网的IP。基于Win32API和WinPcap开发。

2015-01-08

可启动CD/DVD的标准

无论是操作系统发行版还是LiveCD都是从光盘启动,光盘启动的原理是什么,可以自己制作启动光盘吗?你知道光盘启动的两种方式吗?

2013-02-26

Introduction To Algorithms 3rd edition (算法导论第三版)

算法导论2009年版本,第三版英文版。 截止2012年9月,中文版还停留在英文版第二版。

2012-09-24

字节序与位序

详细的字节序与位序描述,以及需要注意的问题。

2012-02-15

C#写的基于TCP的聊天室程序源码

学习.Net平台下TCP编程入门程序。涉及到TCP连接的数据边界确定方法,多线程,异步编程APM。

2010-12-03

NAT以及MAP详解

NAT以及MAP详解,自己总结的文章。对于理解防火墙配置有良好的作用。

2010-03-20

Windows二进制字符串资源的处理方法

exe,dll里的资源很多,字符串处理比较特殊,希望大家有所收益。

2010-02-01

EXCEL VBA基本教程与常用函数

VBA几乎伴随与微软的每一个产品,WORD, EXCEL, PPT。要充分发挥EXCEL的功能,不用VBA是不可能的。这是两本基本的教程,适合初学者。

2010-01-03

glut+glew-- Windows平台开发OpenGL必备

由于微软对OpenGL的不再支持,使得在Windows平台开发OpenGL程序必须使用扩展库。glut和glew是不可缺少的两个基本扩展库。现在我把这两个库打包在一起,方便大家下载。

2009-12-26

反修饰VC++符号名称

C++中的函数和变量名,经过VC++编译后可以说是变得面目全非,这对于我们分析软件尤其是逆向工程带来不便,本软件让面目全非的符号名恢复到编译器源代码中的名字。既可以手工输入,也可以直接读取.def文件恢复。还附带了MFC4.2版本的def文件供测试使用。

2009-10-12

全球IPv4地址分配库

全球IPv4地址分配情况,chm格式。网络安全人士必备。

2009-04-17

SMDK2443_WINCE6.0_BSP Manual

安装SMDK2443_WINCE6.0_BSP的详细步骤。

2008-12-19

MySQL在Vista上的安装步骤

安装MySQL的详细步骤(VISTA平台)。

2008-12-19

Build Your Own .NET Language and Compiler

如果想深入学习.net,此书必备。 好不容易才在网上找到的。

2008-12-19

Eclipse中文教程

Eclipse越来越火了,无论做Java还是C/C++开发,Eclipse都是一个完美的跨平台IDE。

2008-11-11

构建嵌入式Linux系统(2008版)

2008版的,学习嵌入式Linux开发的必备读物。

2008-10-22

一个关于当前软件开发库与技术的详细分析

详细的分析了一个大型项目需要的各种技术与标准。对于企业软件开发高层技术决策有参考价值。

2008-10-22

DBUS在Linux内核及用户空间的使用

DBUS在Linux内核及用户空间的使用,与HAL及UDEV的关系。

2008-09-18

XWindow常识文章3篇

XWindow与Linux GUI基础知识。

2008-09-18

嵌入式MPEG-4解码系统的设计与实现.doc

嵌入式MPEG-4解码系统的设计与实现.doc,不错的文章。

2008-07-21

I2C总线驱动伪代码

I2C总线驱动伪代码,可方便地转化为你自己的语言,如C语言。

2008-07-21

I2C总线标准

I2C总线标准,学习 IIC总线必备。

2008-07-21

Windows核心编程(最新)

windows核心编程,最经典的Windows程序员必备案头书。

2008-07-21

对象标准COM和CORBA论长道短

关于对象标准COM和CORBA进行比较的好文章。

2008-04-25

Windows CE 编程(英文2版).CHM

Windows CE 编程(英文2版).CHM

2008-04-25

Windows CE 编程(英文2版).CHM

Windows CE 编程(英文2版).CHM

2008-04-25

BS_Contact_VRML-X3D_62.exe

浏览器察看VRML文件的插件

2007-12-11

空空如也

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

TA关注的人

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