自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (92)
  • 收藏
  • 关注

原创 记录一个错误/bin/python2.7.real: No such file or directory

sudo apt-get install liblzo2-devsudo apt-get install python-pip

2020-11-19 17:58:42 1219

原创 嵌入式面试题C语言(一)数组一道面试题

这道题在工作中实际编程很少能遇到,至少我没有涉及到,但是低于数组指针其实是一种深入理解或者说另一种思考的角度,这是一道面试题:int a[] = {1,2,3,4,5,6,7};1.printf(“a[5] is %d\n”, a[5]);2.printf(“5[a] is %d\n”, 5[a]);这就是考题 这里直接给出结果 6 ,6在我试验输出这个结果的时候其实我还是不理解,按照我...

2019-01-03 14:00:49 266

转载 树莓派3B 内核编译

转载:http://blog.csdn.net/wjgwrr/article/details/52251248 1.准备工作: 1.1开发环境系统ubuntu 16(64位) 1.2下载源码:https://github.com/raspberrypi linux:树莓派内核源码 tools:树莓派的交叉编译工具 下载方式: (1)网页下载 直接下载zip (2)命令下载 git

2016-11-28 15:03:32 2273

原创 Linux系统网络编程中TCP通讯socket--send导致进程被关闭

send(sockfd, buff, sizeof(buff), 0); 在linuxTCP通讯中上述send形式是常用的设置方式,但是如果在TCP链接断开后调用该send函数,多次即会导致进程结束。解决方法 最简单的方式就是 send(sockfd, buff, sizeof(buff), MSG_NOSIGNAL);下面说一下原因: linux下TCP/IP socket套接字建立后,

2016-08-01 10:19:56 3335

转载 C语言一个队列的实现

队列也是常用的数据结构之一,下面给出一个链式队列的实现~~头文件Queue.h[cpp] view plaincopy#ifndef Queue_H  #define Queue_H    typedef int Item;  typedef struct node * PNode;  typedef struct nod

2015-10-13 09:09:11 484

转载 Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google啥的,发现很多朋友都有介绍二维码扫描的功能,然后我就跟着人家的介绍自己搞起了二维码扫描功能,跟着人家的帖子,很快我的项目就加入了扫描二维码的功能,然后自己还很开

2015-10-13 08:49:00 610

转载 Android APK反编译详解(附图)

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。本文Android反编译教程,测试环境:Win7 Ultimate x64Ubun

2015-10-11 13:15:09 382

转载 状态机编程

有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM--有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限次的处理,相反,有限状态机是闭环系统,有限无穷,可以用有限的状态,处理无穷的事务

2015-09-11 10:38:25 312

转载 状态机思路在程序设计中的应用

状态机思路在单片机程序设计中的应用状态机的概念状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些

2015-09-11 10:16:47 402

转载 USB虚拟串口

现代嵌入式系统中,异步串行通信接口往往作为标准外设出现在单片机和嵌入式系统中。但是随着个人计算机通用外围设备越来越少地使用串口,串口正在逐渐从个人计算机特别是便携式电脑上消失。于是嵌入式开发人员常常发现自己新买来的计算机上没有串口,或者出现调试现场用户的计算机没有串口的尴尬局面。相反,现在的个人计算机普遍拥有4个以上的USB接口,能不能使用USB接口代替串口,完成PC机和嵌入式系统的通信呢?

2015-09-10 17:02:43 17422 1

转载 cmd命令行大全 dos命令 cmd命令整理

CMD命令 net use ipipc$ " " /user:" " 建立IPC空链接 net use ipipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H: net use h: ipc$ 登陆后映射对方C:到本地为H: net use ipipc$ /del 删

2015-09-06 14:16:46 815

转载 CMD命令行高级教程精选合编合集

目录第一章 批处理基础第一节 常用批处理内部命令简介1、REM 和 ::2、ECHO 和 @3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和 :9、FIND10、START11、assoc 和 ftype12、pushd 和 popd13、CALL14、shift15、I

2015-09-06 14:13:00 1948

原创 wind cmd 一行多命令和进程查杀

1.cmd 一行执行多条语句         用 & 隔开即可     例如:tasklist|findstr id  & (taskkill /pid  id  /f /t) 2.进程查找     按照id 查找            tasklist|findstr id     按照名字查找

2015-09-06 14:00:29 1653

转载 Eclipse背景颜色修改

Eclipse背景颜色修改: 操作界面默认颜色为白色。对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些。设置方法如下:    1、打开window->Preference,弹出Preference面板    2、展开General标签,选中Editors选项,展开。    3、选中 Test Edi

2015-08-27 09:55:45 1260

原创 C语言字符串、指针和内存问题总结

字符串:字符串变量是字符串的首地址,直到'\0'为止字符串的表示方式:1  字面值”abc”(字符串常量)                              2  char *表示                              3  char s[n]表示 字符串的操作 :                              1 字符串的赋值

2015-08-22 23:22:03 1021

原创 C语言数组指针指针数组

在数组指针和指针数组这块我总是弄不清楚,总结一下指针数组:用于存储指针的数组,也就是数组元素都是指针数组指针:指向数组的指针关于这部分有一道题:       一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型 这道题一开始我总是弄不清楚       正确答案:int  (*a[10]) (int);      C的类型

2015-08-22 17:03:36 608

原创 宏定义的使用详细总结

宏定义分类:         1 . 不带参数的宏定义 : #define 宏名 [宏体] 例: #define TRUE 1 2. 带参数的宏 : #define 宏名( 参数表) [宏体] 例:#define MAX(x,y) ((x)>(y)?(x):(y))

2015-08-22 11:23:44 1219

转载 C函数返回局部变量

一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意

2015-08-21 22:17:47 314

原创 C语言优先级总结

C语言优先级汇总        每次要用的时候都得自己着太不方便了,字节总结一份,用的时候看起来比较方便 网上的记忆口诀:         圆方括号、箭头一句号,          自增自减非反负、针强地址长度, 乘除,加减,再移位,         小等大等、等等不等,八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。

2015-08-21 13:28:27 1237

转载 C语言数组与指针详解

1.         晕指针,唐式偏方一:“投石问路”#include int main(void){       char* str = "ABCDEFGHIJKL";       int* pInt = (int*)str;       printf("%c\n%c\n",*(str+1),*(char *)(pInt+1));

2015-08-20 10:50:20 471

转载 函数指针与指针函数

一、辨别指针函数与函数指针最简单的方式就是看函数名前面的指针*号有没有被括号包含,如果被包含就是函数指针    ,反之则是指针函数。1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y);     首先它是一个函数,只不过这个函数的返回值是一个地址值

2015-08-20 09:57:40 233

转载 数组指针和指针数组

1、数组指针(指向数组的指针)(1)数组在内存中的表示 创建一个数组就是在内存里面开辟一块连续的空间,比如int a[4];就是在内存里面开辟了一个大小为4*sizeof(int)字节的内存空间。二维数组是特殊的一维数组。先来看一段代码:<strong><span style="font-size:16px;">void main() { int a[2][2]={1,2,3,4}

2015-08-20 09:50:32 300

转载 回调函数

回调函数在看LWIP时,见到用回调函数,再看某老外公司OPC源代码时,见到用回调函数。看我国内某些代码(我公司软件等)时没用到。于是,我对回调函数产生了很大的好奇。以前,我写VC程序时用到过回调函数,但是没有用C语言来使用。最近,看到国外大量的经典代码中广泛使用了回调函数(LWIP、某两个公司的OPC程序等),都是C语言来实现的,而不是VC windows程序中别人实现自己使用的那种。 为了弄明白

2015-08-20 09:29:23 267

转载 RAM和ROM的区别

RAM-RamdomAccessMemory易挥发性随机存取存储器,高速存取,读写时间相等,且与地址无关,如计算机内存等。 ROM-Read Only Memory只读存储器。断电后信息不丢失,如计算机启动用的BIOS芯片。存取速度很低,(较RAM而言)且不能改写。由于不能改写信息,不能升级,现已很少使用。ROM和RAM是计算机内存储器的两种型号,ROM表示的是只读存储器,即:它只能读出信息,不能写

2015-08-18 12:05:19 870

原创 进程内存空间的划分(代码区,全局区,BSS段,栈区,堆区,只读常量区)

进程的内存空间划分:6个部分代码区、只读常量区、全局区、BSS段、堆、栈 代码区 – 程序的代码(以函数的形式)存入代码区,函数指针就是函数在代码取得地址,代码区 是 只读区域. 只读常量区 – 很多的书上都把只读常量区归入代码区,存放字符串的字面值(“abc”)和const修饰的全局变量。 全局区 – 存放全局变量和static的局部变量,读写权限。 BSS段 – 存放为初始化

2015-08-18 12:03:21 4057

原创 ZigBee帧结构汇总(应用层(APS)、网络层(NWK),MAC层,物理层(PHY))

ZigBee帧结构汇总如下:

2015-08-14 11:33:30 10996

转载 ZigBee网络体系结构(图文)

1、Zigbee协议体系结构看了Zigbee的体系结构,联想到TCP/IP的体系结构,觉得似乎每个协议都是由OSI七层协议演化而来的,由图可以看出IEEE802.15.4定义了物理层和MAC层,而Zigbee联盟定义了网络层、应用层技术规范,每一层为其上层提供特定的服务:即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,

2015-08-14 11:16:21 20455

转载 树莓派Win10镜像下载安装教程及使用初体验

win10镜像: http://pan.baidu.com/s/1mgvh9Vi 密码:j2jb一、WIN7下刷镜像的方法: 官网推荐在Win10下刷(http://ms-iot.github.io/content/win10/SetupRPI.htm),我只能说呵呵了,为了个不稳定的系统装个Win10,下面来讲一下Win7下的安装方法。 因为Win7所带的镜像工具不是最新版,所以需要下载

2015-08-13 16:32:48 8026

转载 zigbee 原语与帧的关系是什么(个人理解)

个人理解1、原语是协议栈中层与层之间进行通信的方式。这样解释吧,例如应用层需要发送数据,它会把数据以数据原语(如Data_Request原语)的形式发送给NWK层,NWK层经过定义的规则判断,决定是否发给MAC层,以此类推,直到发送给最底层PHY层。2、此时帧的格式体现在哪呢? 我们以NWK层为例,如NWK有一个命令帧叫做“路由请求命令”,其作用不细说。NWK层需要把该命令通过MAC层、PHY层发

2015-08-13 15:46:12 1763

转载 ZigBee路由协议分析(机制,算法,发现,建立)

一、ZigBee网络层次结构与地址分配机制 ZigBee网络中的所有节点都有两个地址:一个16位网络短地址和一个64位IEEE扩展地址。其中16位网络地址仅仅在网络内部使用,用于路由机制和数据传输。这个地址是在节点加入网络时由其父节点动态分配的。当网络中的节点允许一个新节点通过它加入网络时,它们之间就形成了父子关系。所有加入ZigBee网络的节点一同组成一棵逻辑树,逻辑树中的每一个节点都拥有以

2015-08-11 10:51:44 13260

转载 Zigbee协议规范--数据传输原语流图及说明

网络层数据流程原语说明1.数据发送部分原语APSDE-DATA.request( DstAddrMode, //目的地址寻址模式,0x01=16位短地址 DstAddress, //ASDU目的实体设备地址 DstEndPoint, //ASDU目的实体的断点地址 ProfiledId,

2015-08-10 08:54:19 1132

原创 C++中的引用

什么是引用?引用就是一个别名,相当于同一种东西另一种叫法父亲 有的人叫爸爸,有的人叫爹引用的定义方法 类型& 引用名 = 被引用的对象; int a=100; int& ra=a; ra就是a别名引用定义之后需要进行初始化 一旦初始化后,在引用的生命期就不能再引用其它的对象。#include <iostream>using namespace std;int main(){

2015-08-04 14:20:00 290

原创 c++中的动态内存分配(new,delete)

申请内存申请变量对应的内存 类型 *变量名=new 类型(值); 类型 *变量名=new 类型; pi=new int(123);申请多个变量对应的一块内存类型 *变量名=new 类型[n];double *pd=new double[5];释放内存delete 指针变量名;delete pi;delete[] 指针变量名;delete[] pd;#include <iost

2015-08-04 13:21:17 277

原创 C++内联函数

内联的意思就是 在编译器请求编译器把函数的二进制代码 复制到调用位置成功 就会减少函数调用开销,如果请求失败 则成为普通函数调用。哪些函数适合内联: 1.函数的代码量要小 (n<=5) 2.频繁调用 3.递归函数 无法实现内联 4.类中定义成员函数 默认是内联的#include <iostream>using namespace std;//带参的宏 (宏函数)#d

2015-08-04 11:46:17 290

原创 C++函数参数的默认值

一个函数参数 可以指定一个默认的值 调用函数时 如果不对这个参数传入值则使用默认值,如果对这个参数传入值 则使用传入的值。#include <iostream>using namespace std;int getmax(int x=0,int y=1);//函数声明与实现分离,在函数声明中指定默认值,不要在实现中指定int main(){ cout << getmax() << end

2015-08-04 11:35:03 916

原创 C++函数的哑元及其作用

一个函数的参数 只有类型 没有名字 则这个参数称之为哑元。哑元的作用1.表达参数列表匹配更加严格 void test(void);2.保持函数的向前兼容特性 void decode(int key);//老版本函数 decode(9527); void decode(int);//从新开发新版本函数保持函数的向前兼容特性3.区分函数 #include <iostream>

2015-08-04 11:17:21 4705

原创 C++、 C 中的结构体、联合和枚举 异同

C++结构体c++定义结构体的语法 和 c 相同不同点:1.在表达结构体类型时 c++可以省略struct 关键字。2.c++结构体中可以定义函数。#include <iostream>using namespace std;struct Name{ string dsanmux; void show()//结构体中可以定义函数 { cout <<

2015-08-04 08:35:16 750 1

原创 C++ 函数重载

c++函数重载 同一作用域中 函数名相同 参数列表不同的函数构成重载关系。 参数列表不同 : 类型不同 、个数不同、参数顺序不同 调用函数时会根据传入的参数值的类型选择对函数。#include <iostream>using namespace std;int getmax(int x,int y){ cout << "getmax(int,int)" << endl; ret

2015-08-03 23:42:21 484

原创 c++中的函数 和 c 函数的不同

c++中无参的函数参数列表要严格匹配,void型的参数依然可用 int test(void);c++不再支持c的隐式声明 函数调用之前要么提前声明 要么定义。c函数中 函数的返回值类型 默认是int,但c++函数中int不能省略。 (函数必须指定返回值类型) 函数体中没有返回值 编译器表现正常。

2015-08-03 23:13:46 403

原创 C++运算符 转换

C++运算符转换,了解一下举几个简单例子 && 等价于 and # 等价于 %: { 等价于 <% } 等价于 %> & 等价于 bitand %:include <iostream> //# 等价于 %:using namespace std;int main()<%

2015-08-03 22:38:35 300

BLE基础介绍.pptx

BLE基础介绍.pptx, 1.框架介绍 2.PHY层分析 3.LL链路层分析 4.SMP层分析 5.ATT层分析 6.GATT层分析 7.GAP层分析

2020-04-16

蓝牙资料参考.rar

l蓝牙核心技术及应用,可以做参考,有需要的朋友拿去,需要更多的信息可以下载查看,或者找我直接发,作责马建仓等 详细的目录不做列出了,第一章 蓝牙技术概述 第二章 蓝牙射频协议 第三章蓝牙基带与链路控制器协议 。。。。。。。。。。。。。。。

2020-04-16

zigbee-master

zigbee开源协议站,新手可作参考,非协议栈开发可借鉴代码结构,会有很大帮助

2018-03-21

zigbee开源

zigbee源码做协议栈开发初学者可供参考,ZBOSS_v1.0,不做协议栈开发也可以做借鉴,感觉还是很有帮助的

2018-03-21

zigbee协议开源

Zigbee协议栈开源,大家可以看看,对于开发还是很有帮助的

2018-03-21

IAR 8051 最新开发软件

IAR开发工具 有需要的可以下载 挺好用的,官方下载的 10101

2018-03-21

@时间触发嵌入式系统设计模式@

时间触发嵌入式系统设计模式 初学者可以做参考,挺有意义的,裸板单片机跑程序值得借鉴

2018-03-21

时间触发嵌入式系统设计模式——8051系列微控制器开发可靠应用

时间触发嵌入式系统设计模式——8051系列微控制器开发可靠应用(光盘)相应代码,可以参考一下

2018-03-21

Uboot中start.S源码的指令级的详尽解析-v1.6.pdf

Uboot中start.S源码的指令级的详尽解析-v1.6.pdf 学习者很有帮助,有需要的下载看看

2016-12-13

ARM指令集.chm

ARM指令集 查询手册,有需要的下载看看

2016-12-13

ARM体系结构与编程 杜春雷pdf

ARM体系结构与编程 杜春雷 可以在开发嵌入式过程做参考,还是挺好的

2016-12-13

ARM指令集快速查询手册.pdf

ARM指令集快速查询手册,pdf格式 ,查询可以使用 挺方便的 有需要的可以下载

2016-12-13

完整的华为sourceInsight 宏定义

1.SI自带的功能 2.使用quicker.em 3.使用Chnchar.em 4.使用CodeReview.em 包含详细使用说明文档

2016-11-09

Qt Creator快速入门(经典版)

Qt Creator 初学者必备 有需要的 下载了解一下

2016-08-04

LoraWAN终端部分的源码

LoraWAN终端部分的源码,有需要的朋友可以作为参考

2016-08-01

LoraWAN网关源码

LoraWAN网关源码,有需要的朋友可以下载看看

2016-08-01

LoRaWAN手册

LoraWAN手册

2016-08-01

TLB注册工具

com组件开发在开发过程中可能会出现问题,除了对com组件使用regsvr32 进行注册外,还需要对tlb进行注册,tlb相比之下又是一项比较繁琐的过程 此工具可以对com组件tlb文件方便的注册

2016-04-13

CC253x例程

CC253x例程,做个参考,大家可以试试看看 初学者还是比较实用

2015-11-11

CC2530中文数据手册完全版.

CC2530中文数据手册完全版,分享详细的芯片资料

2015-11-11

Java API文档中文版

Java API文档中文版 ,很有帮助,大家有用的到的可以下载试试

2015-10-30

铁道部标准 TBT1528 铁路信号电源屏

TB/T 1528《铁路信号电源屏》分为7个部分: — 第1部分:总则; — 第 2部分:试验方法; — 第3部分:继电联锁信号电源屏; — 第4部分:计算机联锁信号电源屏; — 第5部分:驼峰信号电源屏; — 第6部分:区间信号电源屏; — 第7部分:25 Hz信号电源屏。

2015-10-30

程序员生存定律

这是《程序员生存定律》这电子书的pdf版本

2015-10-23

绿色免安装版论文查重检测精准版3.0.rar

现在提供论文检测的机构主要来源于三大中文期刊数据库,即中国知网论文检测系统,万方论文相似性检测系统,维普通达检测系统。中国知网论文检测系统不对个人开放,价格较贵,万方检测系统不准。

2015-10-23

DirectX修复工具 V3.3增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.3版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的问题,而且还能解决c++组件异常产生的问题。增强版适合无法自行解决c++相关问题的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,主程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自主选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了4项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“DirectX版本”选项卡可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行本程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行本程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。

2015-10-23

C-C++ 指针的13份资料

C/C++ 指针的13份资料 内容丰富,让编程人员不再害怕指针

2015-10-23

C/C++程序设计员应聘常见面试试题深入剖析

C/C++程序设计员应聘常见面试试题深入剖析,不看会后悔

2015-10-23

级玛丽源码

我做的第一个横版过关游戏,VC实现,带三张地图。这是整个工程,包含了图片、代码所有资源,可直接编译运行,大家多鼓励。

2015-10-23

75份速查表

75 份速查表,由 vikas 收集整理,包括:jQuery、HTML、HTML5、CSS、CSS3、JavaScript、Photoshop 、git、Linux、Java、Perl、PHP、Python、Ruby、Ruby on Rails、Scala、C#、SQLite、C++、C语言、Ubuntu、WordPress、Node.js、Oracle、NMAP、Mac OS X、Haskell、Unicode、PostgreSQL、Lisp、Matlab 等。

2015-10-23

程序员表白专用

程序员表白专用,还没有尝试,大家可以尝试看看

2015-10-23

微信技术总监分享架构设计

在技术架构上,微信是如何做到的?日前,在腾讯大讲堂在中山大学校园宣讲活动上,腾讯广研助理总经理、微信技术总监周颢在两小时的演讲中揭开了微信背后的秘密。

2015-10-23

SSH2框架搭建实例

SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本.演示了用户登录和用户管理

2015-10-23

程序员给女朋友做的精美3D相册

程序员给女朋友用HTML5制作的3D相册 感觉挺漂亮。 整理里一个自己可以换相片

2015-10-23

重构_改善既有代码的设计

小提示 本资料仅供个人学习参考,请勿用于商业用途,如有能力请尽量购买正版图书,也是对作者的支持。 重构:改善既有代码的设计 中文版 软件开发的不朽经典 2010年人民邮电再版中文版(清晰PDF) 本书提供作译者介绍   Martin Fowler世界软件开发大师,在面向对象分析设计、UML、模式、XP和重构等领域都有卓越贡献,现为著名软件开发咨询公司ThoughtWorks的首席科学家。他的多部著作《分析模式》、《UML精粹》和《企业应用架构模式》等都已经成为脍炙人口的经典。 熊节 ThoughtWorks中国公司的高级咨询师、架构师和项目经理,在大型企业应用及互联网应用的架构和管理方面拥有丰富经验。作为敏捷方法学顾问和重构专家,他拥有在各种技术平台、编程语言、软件形态的项目中实施重构的丰富经验,并曾主持极具挑战性的超大规.. 目录回到顶部↑第1章 重构,第一个案例 1 1.1 起点 1 1.2 重构的第一步 7 1.3 分解并重组statement() 8 1.4 运用多态取代与价格相关的条件逻辑 34 1.5 结语 52 第2章 重构原则 53 2.1 何谓重构 53 2.2 为何重构 55 2.3 何时重构 57 2.4 怎么对经理说 60 2.5 重构的难题 62 2.6 重构与设计 66 2.7 重构与性能 69 2.8 重构起源何处 71 第3章 代码的坏味道 75 3.1 duplicated code(重复代码) 76 3.2 long method(过长函数) 76 3.3 large class(过大的类) 78 3.4 long parameter list(过长参数列) 78 .3.5 divergent change(发散式变化) 79 3.6 shotgun surgery(霰弹式修改) 80 3.7 feature envy(依恋情结) 80 3.8 data clumps(数据泥团) 81 3.9 primitive obsession(基本类型偏执) 81 3.10 switch statements(switch惊悚现身) 82 3.11 parallel inheritancehierarchies(平行继承体系) 83 3.12 lazy class(冗赘类) 83 3.13 speculative generality(夸夸其谈未来性) 83 3.14 temporary field(令人迷惑的暂时字段) 84 3.15 message chains(过度耦合的消息链) 84 3.16 middle man(中间人) 85 3.17 inappropriate intimacy(狎昵关系) 85 3.18 alternative classes with different interfaces(异曲同工的类) 85 3.19 incomplete library class(不完美的库类) 86 3.20 data class(纯稚的数据类) 86 3.21 refused bequest(被拒绝的遗赠) 87 3.22 comments(过多的注释) 87 第4章 构筑测试体系 89 4.1 自测试代码的价值 89 4.2 junit测试框架 91 4.3 添加更多测试 97 第5章 重构列表 103 5.1 重构的记录格式 103 5.2 寻找引用点 105 5.3 这些重构手法有多成熟 106 第6章 重新组织函数 109 6.1 extract method(提炼函数) 110 6.2 inline method(内联函数) 117 6.3 inline temp(内联临时变量) 119 6.4 replace temp with query(以查询取代临时变量) 120 6.5 introduce explaining variable(引入解释性变量) 124 6.6 split temporary variable(分解临时变量) 128 6.7 remove assignments to parameters(移除对参数的赋值) 131 6.8 replace method with method object(以函数对象取代函数) 135 6.9 substitute algorithm(替换算法) 139 第7章 在对象之间搬移特性 141 7.1 move method(搬移函数) 142 7.2 move field(搬移字段) 146 7.3 extract class(提炼类) 149 7.4 inline class(将类内联化) 154 7.5 hide delegate(隐藏“委托关系”) 157 7.6 remove middle man(移除中间人) 160 7.7 introduce foreign method(引入外加函数) 162 7.8 introduce local extension(引入本地扩展) 164 第8章 重新组织数据 169 8.1 self encapsulate field(自封装字段) 171 8.2 replace data value with object(以对象取代数据值) 175 8.3 change value to reference(将值对象改为引用对象) 179 8.4 change reference to value(将引用对象改为值对象) 183 8.5 replace array with object(以对象取代数组) 186 8.6 duplicate observed data(复制“被监视数据”) 189 8.7 change unidirectional association to bidirectional(将单向关联改为双向关联) 197 8.8 change bidirectional association to unidirectional(将双向关联改为单向关联) 200 8.9 replace magic number with symbolic constant(以字面常量取代魔法数) 204 8.10 encapsulate field(封装字段) 206 8.11 encapsulate collection(封装集合) 208 8.12 replace record with data class(以数据类取代记录) 217 8.13 replace type code with class(以类取代类型码) 218 8.14 replace type code with subclasses(以子类取代类型码) 223 8.15 replace type code with state/strategy(以state/strategy取代类型码) 227 8.16 replace subclass with fields(以字段取代子类) 232 第9章 简化条件表达式 237 9.1 decompose conditional(分解条件表达式) 238 9.2 consolidate conditional expression(合并条件表达式) 240 9.3 consolidate duplicate conditional fragments(合并重复的条件片段) 243 9.4 remove control flag(移除控制标记) 245 9.5 replace nested conditional with guard clauses(以卫语句取代嵌套条件表达式) 250 9.6 replace conditional with polymorphism(以多态取代条件表达式) 255 9.7 introduce null object(引入null对象) 260 9.8 introduce assertion(引入断言) 267 第10章 简化函数调用 271 10.1 rename method(函数改名) 273 10.2 add parameter(添加参数) 275 10.3 remove parameter(移除参数) 277 10.4 separate query from modifier(将查询函数和修改函数分离) 279 10.5 parameterize method(令函数携带参数) 283 10.6 replace parameter with explicit methods(以明确函数取代参数) 285 10.7 preserve whole object(保持对象完整) 288 10.8 replace parameter with methods(以函数取代参数) 292 10.9 introduce parameter object(引入参数对象) 295 10.10 remove setting method(移除设值函数) 300 10.11 hide method(隐藏函数) 303 10.12 replace constructor with factory method(以工厂函数取代构造函数) 304 10.13 encapsulate downcast(封装向下转型) 308 10.14 replace error code with exception(以异常取代错误码) 310 10.15 replace exception with test(以测试取代异常) 315 第11章 处理概括关系 319 11.1 pull up field(字段上移) 320 11.2 pull up method(函数上移) 322 11.3 pull up constructor body(构造函数本体上移) 325 11.4 push down method(函数下移) 328 11.5 push down field(字段下移) 329 11.6 extract subclass(提炼子类) 330 11.7 extract superclass(提炼超类) 336 11.8 extract interface(提炼接口) 341 11.9 collapse hierarchy(折叠继承体系) 344 11.10 form tem plate method(塑造模板函数) 345 11.11 replace inheritance with delegation(以委托取代继承) 352 11.12 replace delegation with inheritance(以继承取代委托) 355 第12章 大型重构 359 12.1 tease apart inheritance(梳理并分解继承体系) 362 12.2 convert procedural design to objects(将过程化设计转化为对象设计) 368 12.3 separate domain from presentation(将领域和表述/显示分离) 370 12.4 extract hierarchy(提炼继承体系) 375 第13章 重构,复用与现实 379 13.1 现实的检验 380 13.2 为什么开发者不愿意重构他们的程序 381 13.3 再论现实的检验 394 13.4 重构的资源和参考资料 394 13.5 从重构联想到软件复用和技术传播 395 13.6 小结 397 13.7 参考文献 397 第14章 重构工具 401 14.1 使用工具进行重构 401 14.2 重构工具的技术标准 403 14.3 重构工具的实用标准 405 14.4 小结 407 第15章 总结 409 参考书目 413 要点列表 417 索引 419

2015-10-23

java并发编程实战pdf及源码

目录 对本书的赞誉 译者序 前 言 第1章 简介  1.1 并发简史  1.2 线程的优势   1.2.1 发挥多处理器的强大能力   1.2.2 建模的简单性   1.2.3 异步事件的简化处理   1.2.4 响应更灵敏的用户界面  1.3 线程带来的风险   1.3.1 安全性问题   1.3.2 活跃性问题   1.3.3 性能问题  1.4 线程无处不在 第一部分 基础知识  第2章 线程安全性   2.1 什么是线程安全性   2.2 原子性    2.2.1 竞态条件    2.2.2 示例:延迟初始化中的竞态条件    2.2.3 复合操作   2.3 加锁机制    2.3.1 内置锁    2.3.2 重入   2.4 用锁来保护状态   2.5 活跃性与性能  第3章 对象的共享   3.1 可见性    3.1.1 失效数据    3.1.2 非原子的64位操作    3.1.3 加锁与可见性    3.1.4 Volatile变量   3.2 发布与逸出   3.3 线程封闭    3.3.1 Ad-hoc线程封闭    3.3.2 栈封闭    3.3.3 ThreadLocal类   3.4 不变性    3.4.1 Final域    3.4.2 示例:使用Volatile类型来发布不可变对象   3.5 安全发布    3.5.1 不正确的发布:正确的对象被破坏    3.5.2  不可变对象与初始化安全性    3.5.3 安全发布的常用模式    3.5.4 事实不可变对象    3.5.5 可变对象    3.5.6 安全地共享对象  第4章 对象的组合   4.1 设计线程安全的类    4.1.1 收集同步需求    4.1.2 依赖状态的操作    4.1.3 状态的所有权   4.2 实例封闭    4.2.1 Java监视器模式    4.2.2 示例:车辆追踪   4.3 线程安全性的委托    4.3.1 示例:基于委托的车辆追踪器    4.3.2 独立的状态变量    4.3.3 当委托失效时    4.3.4 发布底层的状态变量    4.3.5 示例:发布状态的车辆追踪器   4.4 在现有的线程安全类中添加功能    4.4.1 客户端加锁机制    4.4.2 组合   4.5 将同步策略文档化  第5章 基础构建模块   5.1 同步容器类    5.1.1 同步容器类的问题    5.1.2 迭代器与Concurrent-ModificationException    5.1.3 隐藏迭代器   5.2 并发容器    5.2.1 ConcurrentHashMap    5.2.2 额外的原子Map操作    5.2.3 CopyOnWriteArrayList   5.3 阻塞队列和生产者-消费者模式    5.3.1 示例:桌面搜索    5.3.2 串行线程封闭    5.3.3 双端队列与工作密取   5.4 阻塞方法与中断方法   5.5 同步工具类    5.5.1 闭锁    5.5.2 FutureTask    5.5.3 信号量    5.5.4 栅栏   5.6 构建高效且可伸缩的结果缓存 第二部分 结构化并发应用程序  第6章 任务执行   6.1 在线程中执行任务    6.1.1 串行地执行任务    6.1.2 显式地为任务创建线程    6.1.3 无限制创建线程的不足   6.2 Executor框架    6.2.1 示例:基于Executor的Web服务器    6.2.2 执行策略    6.2.3 线程池    6.2.4 Executor的生命周期    6.2.5 延迟任务与周期任务   6.3 找出可利用的并行性    6.3.1 示例:串行的页面渲染器    6.3.2 携带结果的任务Callable与Future    6.3.3 示例:使用Future实现页面渲染器    6.3.4 在异构任务并行化中存在的局限    6.3.5 CompletionService:Executor与BlockingQueue    6.3.6 示例:使用CompletionService实现页面渲染器    6.3.7 为任务设置时限    6.3.8 示例:旅行预定门户网站  第7章 取消与关闭   7.1 任务取消    7.1.1 中断    7.1.2 中断策略    7.1.3 响应中断    7.1.4 示例:计时运行    7.1.5 通过Future来实现取消    7.1.6 处理不可中断的阻塞    7.1.7 采用newTaskFor来封装非标准的取消   7.2 停止基于线程的服务    7.2.1 示例:日志服务    7.2.2 关闭ExecutorService    7.2.3 “毒丸”对象    7.2.4 示例:只执行一次的服务    7.2.5 shutdownNow的局限性   7.3 处理非正常的线程终止   7.4 JVM关闭    7.4.1 关闭钩子    7.4.2 守护线程    7.4.3 终结器  第8章 线程池的使用   8.1 在任务与执行策略之间的隐性耦合    8.1.1 线程饥饿死锁    8.1.2 运行时间较长的任务   8.2 设置线程池的大小   8.3 配置ThreadPoolExecutor    8.3.1 线程的创建与销毁    8.3.2 管理队列任务    8.3.3 饱和策略    8.3.4 线程工厂    8.3.5 在调用构造函数后再定制ThreadPoolExecutor   8.4 扩展 ThreadPoolExecutor   8.5 递归算法的并行化  第9章 图形用户界面应用程序   9.1 为什么GUI是单线程的    9.1.1 串行事件处理    9.1.2 Swing中的线程封闭机制   9.2 短时间的GUI任务   9.3 长时间的GUI任务    9.3.1 取消    9.3.2 进度标识和完成标识    9.3.3 SwingWorker   9.4 共享数据模型    9.4.1 线程安全的数据模型    9.4.2 分解数据模型    9.5 其他形式的单线程子系统 第三部分 活跃性、性能与测试  第10章 避免活跃性危险   10.1 死锁    10.1.1 锁顺序死锁    10.1.2 动态的锁顺序死锁    10.1.3 在协作对象之间发生的死锁    10.1.4 开放调用    10.1.5 资源死锁   10.2 死锁的避免与诊断    10.2.1 支持定时的锁    10.2.2 通过线程转储信息来分析死锁   10.3 其他活跃性危险    10.3.1 饥饿    10.3.2 糟糕的响应性    10.3.3 活锁  第11章 性能与可伸缩性   11.1 对性能的思考    11.1.1 性能与可伸缩性    11.1.2 评估各种性能权衡因素   11.2 Amdahl定律    11.2.1 示例:在各种框架中隐藏的串行部分    11.2.2 Amdahl定律的应用   11.3 线程引入的开销    11.3.1 上下文切换    11.3.2 内存同步    11.3.3 阻塞   11.4 减少锁的竞争    11.4.1 缩小锁的范围(“快进快出”)    11.4.2 减小锁的粒度    11.4.3 锁分段    11.4.4 避免热点域    11.4.5 一些替代独占锁的方法    11.4.6 监测CPU的利用率    11.4.7 向对象池说“不”   11.5 示例:比较Map的性能   11.6 减少上下文切换的开销  第12章 并发程序的测试   12.1 正确性测试    12.1.1 基本的单元测试    12.1.2 对阻塞操作的测试    12.1.3 安全性测试    12.1.4 资源管理的测试    12.1.5 使用回调    12.1.6 产生更多的交替操作   12.2 性能测试    12.2.1 在PutTakeTest中增加计时功能    12.2.2 多种算法的比较    12.2.3 响应性衡量   12.3 避免性能测试的陷阱    12.3.1 垃圾回收    12.3.2 动态编译    12.3.3 对代码路径的不真实采样    12.3.4 不真实的竞争程度    12.3.5 无用代码的消除   12.4 其他的测试方法    12.4.1 代码审查    12.4.2 静态分析工具    12.4.3 面向方面的测试技术    12.4.4 分析与监测工具 第四部分 高级主题  第13章 显式锁   13.1 Lock与 ReentrantLock    13.1.1 轮询锁与定时锁    13.1.2 可中断的锁获取操作    13.1.3 非块结构的加锁   13.2 性能考虑因素   13.3 公平性   13.4 在synchronized和ReentrantLock之间进行选择   13.5 读-写锁  第14章 构建自定义的同步工具   14.1 状态依赖性的管理    14.1.1 示例:将前提条件的失败传递给调用者    14.1.2 示例:通过轮询与休眠来实现简单的阻塞    14.1.3 条件队列   14.2 使用条件队列    14.2.1 条件谓词    14.2.2 过早唤醒    14.2.3 丢失的信号    14.2.4 通知    14.2.5 示例:阀门类    14.2.6 子类的安全问题    14.2.7 封装条件队列    14.2.8 入口协议与出口协议   14.3 显式的Condition对象   14.4 Synchronizer剖析   14.5 AbstractQueuedSynchronizer   14.6 java.util.concurrent同步器类中的 AQS    14.6.1 ReentrantLock    14.6.2 Semaphore与CountDownLatch    14.6.3 FutureTask    14.6.4 ReentrantReadWriteLock  第15章 原子变量与非阻塞同步机制   15.1 锁的劣势   15.2 硬件对并发的支持    15.2.1 比较并交换    15.2.2 非阻塞的计数器    15.2.3 JVM对CAS的支持   15.3 原子变量类    15.3.1 原子变量是一种“更好的volatile”    15.3.2 性能比较:锁与原子变量   15.4 非阻塞算法    15.4.1 非阻塞的栈    15.4.2 非阻塞的链表    15.4.3 原子的域更新器    15.4.4 ABA问题  第16章 Java内存模型   16.1 什么是内存模型,为什么需要它    16.1.1 平台的内存模型    16.1.2 重排序    16.1.3 Java内存模型简介    16.1.4 借助同步   16.2 发布    16.2.1 不安全的发布    16.2.2 安全的发布    16.2.3 安全初始化模式    16.2.4 双重检查加锁   16.3 初始化过程中的安全性 附录A 并发性标注 参考文献

2015-10-21

代码大全(软件开发人员必备工具书)

代码大全,软件开发人员必备工具书!有时间可以看看,有帮助。

2015-10-21

21天学通JAVA(高清版)

1天学通JAVA(高清版) java入门的不错教材,详细介绍了java必备知识,包括jdk安装都有介绍,适合初学者

2015-10-21

C语言小游戏源码

花费一下午收集的十几个C语言游戏源代码,专供初学者学习研究!含有1.俄罗斯方块,2.扫雷,3.推箱子4.贪吃蛇5.地对空大战,6.坦克大战7.计算机,8.五子棋9.任务管理器,还有一些编译没有通过的,但是还是可以参考学习的!

2015-10-21

Windows程序设计 中文版+英文版+全书源代码

Windows程序设计》(Windows Programming)<br>中文版(CHM)+英文版(CHM)+全书源代码(zip)基础篇<br>1. 开始 <br>…………………… WINDOWS环境<br>…………………… WINDOWS程序设计选项<br>…………………… 编写第一个WINDOWS程序<br><br>2.Unicode简介 <br>…………………… 字符集简史<br>…………………… 宽字符和C<br>…………………… 宽字符和WINDOWS<br><br>3. 窗口和消息 <br>…………………… 自己的窗口<br>…………………… WINDOWS程序设计的难点<br><br>4. 输出文字 <br>…………………… 绘制和更新<br>…………………… GDI简介<br>…………………… 滚动条<br>…………………… 建立更好的滚动<br><br>5. 图形基础 <br>…………………… GDI的结构<br>…………………… 设备内容<br>…………………… 画点和线<br>…………………… 绘制填入区域<br>…………………… GDI映像方式<br>…………………… 矩形、区域和剪裁<br><br>6. 键盘<br>…………………… 键盘基础<br>…………………… 按键消息<br>…………………… 字符消息<br>…………………… 键盘消息和字符集<br>…………………… 插入符号(不是光标)<br><br>7. 鼠标<br>…………………… 鼠标基础<br>…………………… 显示区域鼠标消息<br>…………………… 非显示区域鼠标消息<br>…………………… 程序中的命中测试<br>…………………… 拦截鼠标<br>…………………… 鼠标滑轮<br><br>8. 定时器<br>…………………… 定时器入门<br>…………………… 定时器的使用:三种方法<br>…………………… 定时器用于时钟<br>…………………… 以定时器进行状态报告<br><br>9. 子窗口控件 <br>…………………… 按钮类别<br>…………………… 控件与颜色<br>…………………… 静态类别<br>…………………… 滚动条类别<br>…………………… 编辑类别<br>…………………… 清单方块类别<br><br>10. 菜单及其它资源 <br>…………………… 图标、光标、字符串和自订资源<br>…………………… 菜单<br>…………………… 键盘快捷键<br><br>11. 对话框<br>…………………… 模态对话框<br>…………………… 非模态对话框<br>…………………… 通用对话框<br><br>12. 剪贴簿<br>…………………… 剪贴簿的简单使用<br>…………………… 复杂的剪贴簿用法<br>…………………… 实作剪贴簿浏览器<br>--------------------------------------------------------------------------------<br>图像篇<br><br>13. 使用打印机<br>…………………… 打印入门<br>…………………… 打印图形和文字<br><br>14. 位图和Bitblt<br>…………………… 位图入门<br>…………………… 位图尺寸<br>…………………… 位块传输<br>…………………… GDI位图对象<br><br>15. 与设备无关的位图 <br>…………………… DIB文件格式<br>…………………… 显示和打印<br>…………………… DIB和DDB的结合<br><br>16. 调色盘管理器 <br>…………………… 使用调色盘<br>…………………… 调色盘动画<br>…………………… 调色盘和真实世界图像<br>…………………… DIB处理链接库<br><br>17. 文字和字体 <br>…………………… 简单的文字输出<br>…………………… 字体的背景<br>…………………… 逻辑字体<br>…………………… 字体列举<br>…………………… 段落格式<br>…………………… 有趣的东西<br><br>18. Metafile<br>…………………… 旧的 MetaFile 格式<br>…………………… 增强型 MetaFile <br>--------------------------------------------------------------------------------<br>进阶篇<br><br>19. 多重文件界面<br>…………………… MDI概念<br>…………………… MDI的范例程序<br><br>20. 多任务和多线程 <br>…………………… 多任务的各种模式<br>…………………… WINDOWS的多线程处理<br>…………………… 线程同步<br>…………………… 事件信号<br>…………………… 线程区域储存空间(TLS)<br><br>21. 动态链接库 <br>…………………… 动态链接库的基本知识<br>…………………… 各式各样的DLL讨论<br><br>22. 声音与音乐 <br>…………………… WINDOWS和多媒体<br>…………………… 波形声音<br>…………………… MIDI和音乐<br><br>23. 领略Internet<br>…………………… Windows Sockets<br>…………………… WININET和FTP<br><br>About the Author<br>Charles Petzold has been writing about personal computer programming since 1984 and has been programming for Microsoft Windows since 1985. He wrote the first magazine article about Windows programming in the December 1986 issue of Microsoft Systems Journal. Between 1986 and 1995, he wrote the Environments column for PC Magazine, which introduced his readers to many facets of Windows and OS/2 programming. <br><br>Programming Windows was first published by Microsoft Press in 1988 and has since become regarded as the best introductory text on the subject. In May 1994, Petzold was one of only seven people (and the only writer) to be given a Windows Pioneer Award from Windows Magazine and Microsoft Corporation for his contribution to the success of Microsoft Windows. <br><br>In the fall of 1999, Microsoft Press will publish Charles Petzold抯 first book for a general audience. Tentatively entitled Code: The Hidden Language of Computer Hardware and Software, this book is a unique introduction to the nature of digital information and how computers work with that information <br><br><br>http://www.verycd.com/topics/13600/<br><br>

2015-10-15

《大型分布式网站架构设计与实践》

一线工作经验总结,囊括大型分布式网站所需技术的全貌、架构设计的核心原理与典型案例、常见问题及解决方案,有细节

2015-10-15

空空如也

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

TA关注的人

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