09 2017 档案

摘要:概念: (1)防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施访问控制策略。 (2)访问控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。 (3)防火墙内的网络称为“可信的网络”(trusted network),而将外部的因特网称为“不可信的网络” 阅读全文
posted @ 2017-09-30 16:14 gd_沐辰 阅读(250) 评论(0) 推荐(0) 编辑
摘要:概念: (1)超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。 (2)HTML 定义了许多用于排版的命令(即标签)。 (3)HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。 HTM 阅读全文
posted @ 2017-09-30 16:13 gd_沐辰 阅读(349) 评论(0) 推荐(0) 编辑
摘要:概念: (1)为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。 (2)从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。 例子: 用户点击UR 阅读全文
posted @ 2017-09-30 16:12 gd_沐辰 阅读(164) 评论(0) 推荐(0) 编辑
摘要:概念: (1)万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。 (2)万维网是一个大规模的、联机式的信息储藏所。 (3)万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。 (4)这种访问方式称为“链接”。 超媒体、超文本与万维 阅读全文
posted @ 2017-09-30 16:10 gd_沐辰 阅读(453) 评论(0) 推荐(0) 编辑
摘要:概念: (1)文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。 (2)FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 (3)FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件. 阅读全文
posted @ 2017-09-30 16:09 gd_沐辰 阅读(363) 评论(0) 推荐(0) 编辑
摘要:概念: (1)许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。 (2)互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。 (3)名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务 阅读全文
posted @ 2017-09-30 16:07 gd_沐辰 阅读(355) 评论(0) 推荐(0) 编辑
摘要:概念: (1)TCP 是面向连接的协议。 (2)运输连接有三个阶段: a.连接建立 b.数据传送 c.连接释放 (3)运输连接的管理就是使运输连接的建立和释放都能正常地进行。 TCP 连接建立过程中要解决的三个问题: (1) 要使每一方能够确知对方的存在。 (2) 要允许双方协商一些参数(如最大窗口 阅读全文
posted @ 2017-09-30 16:05 gd_沐辰 阅读(399) 评论(0) 推荐(0) 编辑
摘要:应用层是我们TCP结构的最顶层,也是最接近软件的层次,与计算机的硬件方面、组成方面、结构方面关系不多。主要解决的是应用方面的问题。 比如: (1)域名系统 DNS (2)文件传送协议 (3)远程终端协议 TELNET (4)万维网 WWW (5)电子邮件 (6)动态主机配置协议 DHCP (7)简单 阅读全文
posted @ 2017-09-30 16:05 gd_沐辰 阅读(334) 评论(0) 推荐(0) 编辑
摘要:TCP的阻塞控制方法: (1)TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。 (2)TCP发送方维持一个拥塞窗口 CWND (Congestion Window) a.拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。 b.发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。 阅读全文
posted @ 2017-09-30 16:02 gd_沐辰 阅读(1546) 评论(0) 推荐(0) 编辑
摘要:我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。因此要控制发送的速率和内容等资源。 解决方式: 流量控制 (flow control) 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。 利用滑动窗口机制可以很方 阅读全文
posted @ 2017-09-30 15:58 gd_沐辰 阅读(193) 评论(0) 推荐(0) 编辑
摘要:拥塞控制的原理: (1)在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。 (2)若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。 出现拥塞的原因: ∑对资源需求 > 可 阅读全文
posted @ 2017-09-30 15:58 gd_沐辰 阅读(263) 评论(0) 推荐(0) 编辑
摘要:滑动窗口概念: (1)TCP 的滑动窗口是以字节为单位的。 (2)现假定 A 收到了 B 发来的确认报文段,其中窗口是 20 字节,而确认号是 31(这表明 B 期望收到的下一个序号是 31,而序号 30 为止的数据已经收到了)。 (3)根据这两个数据,A 就构造出自己的发送窗口. 图例解释 发送缓 阅读全文
posted @ 2017-09-30 15:57 gd_沐辰 阅读(224) 评论(0) 推荐(0) 编辑
摘要:概念: (1)TCP 虽然是面向字节流的,但 TCP 传送的数据单元却是报文段。 (2)一个 TCP 报文段分为首部和数据两部分,而 TCP 的全部功能都体现在它首部中各字段的作用。 (3)TCP 报文段首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项 (n 是整数)。 注意 阅读全文
posted @ 2017-09-30 15:56 gd_沐辰 阅读(696) 评论(0) 推荐(0) 编辑
摘要:理想的传输条件特点: 理想的传输条件有以下两个特点: (1) 传输信道不产生差错。 (2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。 在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。然而实际的网络都不具备以上两个理想条件。 问题:必须使用一些可靠传输协议,在不可 阅读全文
posted @ 2017-09-30 15:51 gd_沐辰 阅读(959) 评论(0) 推荐(0) 编辑
摘要:TCP的主要特点: (1)TCP 是面向连接的运输层协议。 (2)每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。 (3)TCP 提供可靠交付的服务。 (4)TCP 提供全双工通信。 (5)面向字节流 a.TCP 中的“流”(stream)指的 阅读全文
posted @ 2017-09-30 15:49 gd_沐辰 阅读(438) 评论(0) 推荐(0) 编辑
摘要:概念: (1)UDP 只在 IP 的数据报服务之上增加了很少一点的功能: a.复用和分用的功能 b.差错检测的功能 (2)虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。 UDP的主要特点: (1) UDP 是无连接的,发送数据之前不需要建立连接,,因此减少了开销 阅读全文
posted @ 2017-09-30 15:48 gd_沐辰 阅读(249) 评论(0) 推荐(0) 编辑
摘要:首先要明白一个重要概念。。。 什么是进程之间的通信? (1)从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 (2)当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输 阅读全文
posted @ 2017-09-30 15:47 gd_沐辰 阅读(1119) 评论(0) 推荐(0) 编辑
摘要:概念: (1)网络地址转换 NAT (Network Address Translation) 方法于1994年提出。 (2)需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫作 NAT路由器,它至少有一个有效的外部全球IP地址。 (3)所有使用本地地址的主机在和外界 阅读全文
posted @ 2017-09-30 15:45 gd_沐辰 阅读(571) 评论(0) 推荐(0) 编辑
摘要:缘由: (1)由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。 (2)考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。 (3)假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机 阅读全文
posted @ 2017-09-30 15:43 gd_沐辰 阅读(6) 评论(0) 推荐(0) 编辑
摘要:缘由:由于IPv4数量有限,不足以给全球人类使用。 IPv6的主要变化如下: (1)更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。 (2)扩展的地址层次结构。 (3)灵活的首部格式。 IPv6 定义了许多可选的扩展首部。 (4)改进的选项。 IPv6 允许数据报包 阅读全文
posted @ 2017-09-30 15:42 gd_沐辰 阅读(655) 评论(0) 推荐(0) 编辑
摘要:路由器的构成: (1)路由器是一种典型的网络层设备。 (2)路由器是互联网中的关键设备。 路由器的主要作用是: (1)连通不同的网络。 (2)选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。 路 阅读全文
posted @ 2017-09-30 15:38 gd_沐辰 阅读(512) 评论(0) 推荐(0) 编辑
摘要:概念: (1)BGP 是不同自治系统的路由器之间交换路由信息的协议。 (2)边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。 BGP 发言人: (1)每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” (BG 阅读全文
posted @ 2017-09-30 15:30 gd_沐辰 阅读(643) 评论(0) 推荐(0) 编辑
摘要:缘由:开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在1989年开发出来的。 OSPF 协议的基本特点: (1)“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。 (2)“最短路径优先”是因为使用了 Dijkstra 提出的最 阅读全文
posted @ 2017-09-30 15:28 gd_沐辰 阅读(548) 评论(0) 推荐(0) 编辑
摘要:工作原理: (1)路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。 (2)RIP 是一种分布式的、基于距离向量的路由选择协议。 (3)RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记 阅读全文
posted @ 2017-09-30 15:26 gd_沐辰 阅读(1058) 评论(0) 推荐(1) 编辑
摘要:什么是理想的路由算法? 算法必须是正确的和完整的。 算法在计算上应简单。 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。 算法应具有稳定性。 算法应是公平的。 算法应是最佳的。 “最佳路由” (1)不存在一种绝对的最佳路由算法。 (2)所谓“最佳”只能是相对于某一种特定要求下得出的较为 阅读全文
posted @ 2017-09-30 15:23 gd_沐辰 阅读(351) 评论(0) 推荐(0) 编辑
摘要:概念:在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。这种做法叫作划分子网 (subnetting) 。 原因:IP地址的是有限并且是唯一的,不可浪费。比如:网络号:192.168.0,可以供254台主机使用,但是某公司只有100台电脑,这样就会浪费154个 阅读全文
posted @ 2017-09-30 15:22 gd_沐辰 阅读(850) 评论(0) 推荐(0) 编辑
摘要:在路由表中,对每一条路由,最主要有以下两个部分: (目的网络地址,下一跳地址) 1.查找路由表 根据目的网络地址就能确定下一跳路由器,这样做的结果是: IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。 只有到达最后一个路由器时,才试图向目的主机进行直接交付。 阅读全文
posted @ 2017-09-30 15:18 gd_沐辰 阅读(372) 评论(0) 推荐(0) 编辑
摘要:重要点: IP数据报的格式: (1)一个 IP 数据报由首部和数据两部分组成。 (2)首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 (3)在首部的固定部分的后面是一些可选字段,其长度是可变的。 图例 IP 数据报首部的固定部分中的各字段图例: IP 数据报分片例子: 一 阅读全文
posted @ 2017-09-30 15:17 gd_沐辰 阅读(897) 评论(0) 推荐(0) 编辑
摘要:概念:ARP就是将IP地址转换成MAC地址。 ARP 作用:从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。 通信时使用了两个地址: IP 地址(网络层地址) MAC 地址(数据链路层地址) 地址解析协议 ARP 要点: (1)不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时 阅读全文
posted @ 2017-09-30 15:14 gd_沐辰 阅读(390) 评论(0) 推荐(0) 编辑
摘要:概念: (1)IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。(就好比每个人的身份证,都是唯一的。) (2)IP 地址现在由互联网名字和数字分配机构ICANN (Internet Corporation for Assigned Names and 阅读全文
posted @ 2017-09-30 15:13 gd_沐辰 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:网络层 网际协议IP 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。 与 IP 协议配套使用的还有三个协议: 地址解析协议 ARP (Address Resolution Protocol) 网际控制报文协议 ICMP (Internet Control Message Protoc 阅读全文
posted @ 2017-09-30 14:55 gd_沐辰 阅读(209) 评论(0) 推荐(0) 编辑
摘要:以太网的两个标准 : (1)DIX Ethernet V2。 (2)IEEE 802.3。 概念: 在局域网中,硬件地址又称为物理地址,或 MAC 地址。 802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符。 注意: 如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或 阅读全文
posted @ 2017-09-30 14:52 gd_沐辰 阅读(992) 评论(0) 推荐(0) 编辑
摘要:CSMA/CD 含义:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。 “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。 “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他 阅读全文
posted @ 2017-09-30 14:50 gd_沐辰 阅读(801) 评论(0) 推荐(0) 编辑
摘要:PPP协议应满足的要求: 简单 —— 这是首要的要求。 封装成帧 —— 必须规定特殊的字符作为帧定界符。 透明性 —— 必须保证数据传输的透明性。 多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。 多种类型链路 —— 能够在多种类型的链路上运行。 差错检测 —— 能够对接收端收到 阅读全文
posted @ 2017-09-30 14:49 gd_沐辰 阅读(435) 评论(0) 推荐(0) 编辑
摘要:概念: (1)链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。 注意:一条链路只是一条通路的一个组成部分。 (2)数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现在最 阅读全文
posted @ 2017-09-30 14:47 gd_沐辰 阅读(399) 评论(0) 推荐(0) 编辑
摘要:概念: 1.传输媒体也称为传输介质或传输媒介,它就是数据传输系统中在发送器和接收器之间的物理通路。 2.传输媒体可分为两大类,即导引型传输媒体和非导引型传输媒体。 3.在导引型传输媒体中,电磁波被导引沿着固体媒体(铜线或光纤传播)。 4.非导引型传输媒体就是指自由空间。在非导引型传输媒体中,电磁波的 阅读全文
posted @ 2017-09-30 14:44 gd_沐辰 阅读(2672) 评论(0) 推荐(0) 编辑
摘要:数据链路层的信道: 数据链路层使用的信道主要有以下两种类型: (1)点对点信道。这种信道使用一对一的点对点通信方式。 (2)广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 阅读全文
posted @ 2017-09-30 14:44 gd_沐辰 阅读(249) 评论(0) 推荐(0) 编辑
摘要:重点:一个数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)。 数据通信系统的模型 一些常用术语: 数据 (data) —— 运送消息的实体。 信号 (signal) —— 数据的电气的或电磁的表现。 模拟信号 (analogous signa 阅读全文
posted @ 2017-09-30 14:42 gd_沐辰 阅读(804) 评论(0) 推荐(0) 编辑
摘要:概念: 1.物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 2.物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。 3.用于物理层的协议也常称为物理层规程 (procedure)。 物理层的主要任务:确定与传输媒体的接口的一些特性。 有以下几种特 阅读全文
posted @ 2017-09-30 14:38 gd_沐辰 阅读(259) 评论(0) 推荐(0) 编辑
摘要:进程的虚拟地址空间 每个进程都被赋予它自己的虚拟地址空间。对于3 2位进程来说,这个地址空间是4 G B,因为3 2位指针可以拥有从0 x 0 0 0 0 0 0 0 0至0 x F F F F F F F F之间的任何一个值。这使得一个指针能够拥有4 294 967 296个值中的一个值,它覆盖了 阅读全文
posted @ 2017-09-25 12:10 gd_沐辰 阅读(705) 评论(0) 推荐(0) 编辑
摘要:说明:与前两种方法类似。 线程池,根据CPU的核心来决定线程的数目。线程池的最好线程数量:CPU核心*2原因:每一个CPU核心运行一条线程。*2为了可以让线程间进行切换。 区别:(1)线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。 (2)多线程:解决多任务同时执行的需求,合理使用CP 阅读全文
posted @ 2017-09-25 12:03 gd_沐辰 阅读(155) 评论(0) 推荐(0) 编辑
摘要:说明:1.利用线程进行文件扫描。每遇到一个文件夹,创建一条线程进去搜索文件。(与递归类似) 注意点:1.vector容器不安全。要设置临界区,不会多条线程同时对vector进行操作,实现同步。(原子操作)2.具体步骤。//临界区CRITICAL_SECTION g_cs; //初始化 Initial 阅读全文
posted @ 2017-09-25 12:01 gd_沐辰 阅读(540) 评论(0) 推荐(0) 编辑
摘要:说明:1.统计C盘的文件夹和文件的个数。2.搜索某一类文件。如“ntdll”。 步骤:1.明白要搜索哪个磁盘、哪一类文件。2.利用函数不断搜索目录,FindFirstFileW()。注意点:文件路径的格式 C:\\ *.*.若只直接给出C:,必须加上\\,进行标准格式化。3.pFindData.dw 阅读全文
posted @ 2017-09-25 11:59 gd_沐辰 阅读(334) 评论(0) 推荐(0) 编辑
摘要:说明:利用IAT表对函数进行替换。把MessageBox()替换成自己定义的MyMessageBox(),不再出现消息框,而是输出字符或其他内容。 IAT表可以理解为一个数组。 目的:找到IMAGE_IMPORT_DESCRIPTOR结构体。 过程:根据图片算偏移。。1.找到IMAGE_DOS_HE 阅读全文
posted @ 2017-09-25 11:58 gd_沐辰 阅读(613) 评论(0) 推荐(0) 编辑
摘要:说明:1.创建MFC的对话框窗口。不使用PHOTO CONCTRUL.直接在窗口画出来。2.画后面的图,前面的图清空。3.对话框窗口的大小根据图片的大小改变。 步骤:1.创建常用的MFC程序窗口,添加所需要的控件。2.在控件的消息中添加CFileDialog ,用于打开文件。 贴图的重要步骤:1.获 阅读全文
posted @ 2017-09-25 10:37 gd_沐辰 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:IAT表详解 IAT的全称是Import Address Table。 IAT表是执行程序或者dll为了实现动态加载和重定位函数地址,用到的一个导入函数地址表。这里面记录了每个导入函数的名字和所在的dll名称,在pe加载的时候系统会加载这些dll到用户的地址空间然后把函数地址覆盖这个表里的函数地址, 阅读全文
posted @ 2017-09-23 14:36 gd_沐辰 阅读(6755) 评论(0) 推荐(1) 编辑
摘要:1、 DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。 静态链接库与动态链接库的区别: (1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必 阅读全文
posted @ 2017-09-23 14:35 gd_沐辰 阅读(4524) 评论(0) 推荐(1) 编辑
摘要:检查程序是否是PE文件 说明: 判断一个文件是否是PE文件。本例主要判断DOS头,NT头。利用两种方式进行判断,一种是WIN32的函数;另一种是MFC的方法。但是思路是一致的。 PE结构适用于windows系统的程序,即.exe。 PE(Portable Execute)文件是Windows下可执行 阅读全文
posted @ 2017-09-08 19:55 gd_沐辰 编辑
摘要:MySpy++ 说明: 本例利用MFC模仿VS编译器的SPY++,通过捕捉工具,随着光标的移动可以获取到当前窗口的句柄、标题、类名、尺寸。 最终结果: 步骤: 1.打开资源视图-》Dialog,对对话框进行如下修改。 解析: “搜索条件”是组合框,Group Box,可以任意拖动,选定包含区域。 “ 阅读全文
posted @ 2017-09-08 19:49 gd_沐辰 阅读(1162) 评论(0) 推荐(0) 编辑
摘要:#include #include #include void ball()//1.物体:球 { printf("\t\t\t\t ●\t"); } int main()//1 10 20 { int h=20;//设置球的高度为20 int dir=1;//当d... 阅读全文
posted @ 2017-09-04 21:11 gd_沐辰 阅读(170) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include //定义宏 宏名 宏值 #define WIDTH 30 //宽度 #define HEIGHT 15 //高度 int arr[HEIGHT][WIDTH]; //15行30列的二维数组 //显示字符函数 void ShowChar() { ... 阅读全文
posted @ 2017-09-04 21:10 gd_沐辰 阅读(208) 评论(0) 推荐(0) 编辑
摘要:#include #include //2.输入密码功能 void InputPassword(char pw[])//char *pw { char ch; //用户输入的密码字符 const char* pold = pw;//保存密码数组的首地址,用于循环内比较 while((ch=getch())!='\r')//ASCII码值为13('\r')回车 ... 阅读全文
posted @ 2017-09-04 21:09 gd_沐辰 阅读(235) 评论(0) 推荐(0) 编辑
摘要:#include #include //getch函数要定义此头文件 #include int main() { HWND hdesktopwnd,hconsolewnd;//桌面窗口的句柄,控制平台窗口句柄 RECT rect,conrect;//矩形 char title[1024]; HDC hscreendc,hconsoledc,hmemdc;//... 阅读全文
posted @ 2017-09-04 21:07 gd_沐辰 阅读(410) 评论(0) 推荐(0) 编辑
摘要:#include #include #include int main() {//1.九个老鼠洞及打老鼠的次数 int times=0;//游戏的次数 int i; //循环变量 int mousex=0;//老鼠的X轴坐标 int mousey=0;//老鼠的Y轴坐标 int posx=0; //锤子的X轴坐标 int pos... 阅读全文
posted @ 2017-09-04 21:07 gd_沐辰 阅读(194) 评论(0) 推荐(0) 编辑
摘要:#include #include #define FILENAME "8_3.txt" //宏定义,宏参 宏值 int main() {//+ :是文件存在就清空,不存在就新建 FILE *pf; //文件指针 char *pstr="欢迎你们"; int length,i;//计算字符串长度,循环变量 int iArr[100];//用来保存... 阅读全文
posted @ 2017-09-04 21:04 gd_沐辰 阅读(210) 评论(0) 推荐(0) 编辑
摘要:#include #include int main() { char title[200];//能存放200个字符的字符数组,用于保存窗口的标题 HWND hwnd; //窗口的句柄 RECT rect; //矩形结构体 int width,height;//窗口的宽度和高度 POINT ptCenter; //窗口的中心点 ... 阅读全文
posted @ 2017-09-04 21:03 gd_沐辰 阅读(200) 评论(0) 推荐(0) 编辑
摘要:#include #include //1.使用宏定义来设置扑克牌的宽度和高度 #define WIDTH 46 //每张扑克牌的宽度为46像素 #define HEIGHT 62 //每张扑克牌的高度为62像素 int main() { char title[200]; HWND hwnd;//窗口句柄,通过该句柄就能够找到位于内存中的窗口资源 HDC hdc... 阅读全文
posted @ 2017-09-04 21:01 gd_沐辰 阅读(552) 评论(0) 推荐(0) 编辑
摘要:#include //读取文件数据 int readData(const char * fileName, int (*pArr)[10])//int (*p)[10]数组指针,该指针指向一个长度为10的整型数组 { int i, j; FILE * pf = fopen(fileName, "r"); //以读取的方式打开数据文件 if(pf == NULL) ... 阅读全文
posted @ 2017-09-04 21:00 gd_沐辰 阅读(390) 评论(0) 推荐(0) 编辑
摘要:#include #include #include void InputPass(char pw[])//输入密码,用数组存储 { char ch;//用户输入密码字符 输入字符\r属于回车的意思 const char* pold=pw;//保存密码数组的首地址,用于循环内的比较 while((ch=getch())!='\r')//循环输入每个字符并判断不等于... 阅读全文
posted @ 2017-09-04 20:59 gd_沐辰 阅读(243) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <time.h> //产生验证码 char* CreateVarify(char vf[],int len) { int i;//循环变量 int isNum;//是否数字 int isUpp;//是否大写 for(i=0;i<len;++i) 阅读全文
posted @ 2017-09-04 20:56 gd_沐辰 阅读(251) 评论(0) 推荐(0) 编辑
摘要:#define _WINSOCK_DEPRECATED_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include #pragma comment(lib,"ws2_32") #include #include int main() { //加载套接字 WORD wVersionRequested;//WinSock库的版本... 阅读全文
posted @ 2017-09-04 20:55 gd_沐辰 阅读(190) 评论(0) 推荐(0) 编辑
摘要:#include #include #include //1.宏定义:作用在本文件中,经常用的数据定义为全局 #define LENGTH 60 //跑道长度 宏参 宏值 不用申请内存 #define HORSENUM 6 //赛马数量 #define MINSTEP 1 //最小的单步距离 #define MAXSTEP 10 //最大的单步距离 void... 阅读全文
posted @ 2017-09-04 20:53 gd_沐辰 阅读(185) 评论(0) 推荐(0) 编辑
摘要:#include //1.冒泡排序法 void BubbleSort(int arr[], int n) { int i, j, tmp; for(i = 0; i arr[j]) { //如果前一个大于后一个就进行交换 tmp = arr[j - 1]; ... 阅读全文
posted @ 2017-09-04 20:52 gd_沐辰 阅读(161) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include int main() { int size=0;//文件的总大小 int len=0;//当前读取数 char tmp[100];//临时数组,保存当前读取的内容 int sum=0;//已读取的大小 char cont[2048]={0};//保存整个文件内容 ... 阅读全文
posted @ 2017-09-04 20:52 gd_沐辰 阅读(454) 评论(0) 推荐(0) 编辑
摘要:#include #include //1.求取字符串长度 "123456" 面试题 int Strlen(char* pstr) { int len=0;//用户统计字符串的长度 while(*pstr!='\0')//如果字符不是字符串结束标志符\0时,就一直循环 { ++len;//统计长度++ ++pstr;//地址++ ... 阅读全文
posted @ 2017-09-04 20:51 gd_沐辰 阅读(299) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <windows.h > void Position(int x,int y)//坐标 { HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//1.拿到一张白纸 COORD pos = {x,y};/ 阅读全文
posted @ 2017-09-04 20:48 gd_沐辰 阅读(166) 评论(0) 推荐(0) 编辑
摘要:#include #include #include //定义宏 #define HORSENUM 6//赛马数量 #define DISTANCE 70//赛马跑道的长度 #define MAXSTEP 5//赛马跑动一次的最长距离 #define ACCOUNT 100000//我的账户 #define MINPAY 3000//... 阅读全文
posted @ 2017-09-04 20:26 gd_沐辰 阅读(256) 评论(0) 推荐(0) 编辑
摘要://C语言图形导入与导出 //需求:1.打开文件,输入一个三角形图形,关闭文件。 // 2.打开文件,读取三角形图形,显示在屏幕上,再关闭文件。 #include int main() {//1.打开文件和关闭文件 int i,j,k;//i表示行数,j表示空格,k表示*号 char str[512],ch; FILE* fp1; FILE* fp=f... 阅读全文
posted @ 2017-09-04 20:25 gd_沐辰 阅读(524) 评论(0) 推荐(0) 编辑
摘要://C语言实现扫雷游戏 #include #include #include int main() { int arr[10][10]={0};//扫雷游戏中的100个格子 int row,col;//循环变量 int row1,col1;//九宫格的循环变量 int count =0;//累计产生地雷的数量 srand(time(0));//每次... 阅读全文
posted @ 2017-09-04 20:24 gd_沐辰 阅读(589) 评论(0) 推荐(0) 编辑
摘要:FILE* fopen ( const char* filename, //文件路径 const char* mode // 打开模式 ); 打开模式: r: 读 w: 写 a: 追加 r+: 读写,文件必须存在,从头开始 w+: 写读,文件不存在就创建,文件存在就清空 a+: 读写,文件不存在就创 阅读全文
posted @ 2017-09-04 20:21 gd_沐辰 阅读(484) 评论(0) 推荐(0) 编辑
摘要:#include <stdlib.h>//栈:int a=5; 4字节,int a[5]; 4*5=20字节 void* malloc ( size_t size // 预分配字节数 ); 成功返回所分配内存的起始地址,失败返回NULL。不初始化。 void* calloc ( size_t nme 阅读全文
posted @ 2017-09-04 20:20 gd_沐辰 阅读(376) 评论(0) 推荐(0) 编辑
摘要:1.在C语言中可以使用结构体定义用户自己的数据类型,类似于数组,但是结构体中的成员可以是不同的数据类型。 struct 结构体类型名 变量名; 例如: struct Student { char name[128]; int age; float score; }; // 定义了一个名为Studen 阅读全文
posted @ 2017-09-04 20:19 gd_沐辰 阅读(166) 评论(0) 推荐(0) 编辑
摘要:1、条件编译指令 #if // 如果,#if VER==1 #ifdef // 如果定义了... #ifndef // 如果没有定义... #elif // 否则如果... #else // 否则 #endif // 和#if/#ifdef/#ifndef配对使用 #undef // 取消定义,和# 阅读全文
posted @ 2017-09-04 20:18 gd_沐辰 阅读(216) 评论(0) 推荐(0) 编辑
摘要:1.在C语言中没有专门的字符串类型,通常情况下,字符串可以用三种方式表示: 1)字面值方式:"xsteach"。不能修改,但是可以被赋值给变量,并在变量中修改。字面值方式的字符串后面自动追加'\0'结束符。字面值可以拼接: "xsteach" " jiaoyu" ==> "xsteach" 2)字符 阅读全文
posted @ 2017-09-04 20:17 gd_沐辰 阅读(139) 评论(0) 推荐(0) 编辑
摘要:一、指针 1.指针就是存放地址的变量。一个指针变量占用4个字节。int* pa;//int * pa; 2.指针类型、取地址、解引用 1)指针类型 int* pa;//pa,*pa int *pa; int * pa; 语义:pa是一个指针,该指针指向一个int型的数据,即pa存放一个int型数据的 阅读全文
posted @ 2017-09-04 20:16 gd_沐辰 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一、函数的概念 函数就是一系列语句的组合,用以实现一些相对独立且具有一定通用性的功能。 y = f(x) y = kx+b 二、函数的定义 1.语法 返回类型 函数名 (形参表) { 函数体语句; } int main () { // ... return 0; } 三、函数的声明 声明语法: 返回 阅读全文
posted @ 2017-09-04 20:14 gd_沐辰 阅读(209) 评论(0) 推荐(0) 编辑
摘要:1.while循环1 while (循环控制表达式) { 循环体语句块; } S1:计算循环控制表达式,若为真则执行循环体语句块,否则退出循环; S2:执行循环体语句块后,执行S1。 1)如果循环控制表达式恒为真,则构成无限循环;//break,return 2)while循环的循环体可能一次都不执 阅读全文
posted @ 2017-09-04 20:13 gd_沐辰 阅读(205) 评论(0) 推荐(0) 编辑
摘要:一、基本概念 数组是用来存储多个类型相同的数据的数据结构——容器。 1.多个,类型相同。 2.数组是一段连续的内存区域。 3.数组变量的本质就是其首字节的地址。 4.数组是数据的容器,而非数据本身。 5.数组中的每个数据项被称为数组的元素,一个数组包括一到多个元素。数组中元素的个数被称为数组的长度。 阅读全文
posted @ 2017-09-04 20:13 gd_沐辰 阅读(152) 评论(0) 推荐(0) 编辑
摘要:结构化程序设计,就是以顺序、分支、循环三种基本控制结构构建任意复杂的单入口单出口的程序。 一、条件分支 1.语法形式 if (表达式1) { 当表达式1为真(值非零)时执行的语句; } else if (表达式2) { 当表达式2为真(值非零)时执行的语句; } ... else { 当表达式1-N 阅读全文
posted @ 2017-09-04 20:12 gd_沐辰 阅读(170) 评论(0) 推荐(0) 编辑
摘要:按用途来看:c主要用于偏底层程序开发,比如驱动,操作系统层面,这类程序一般不是很大,但是难度绝对不低c++主要用于各种上层应用程序开发,适合做大型程序,比如游戏,多媒体,网络等等,对于各种应用程序,c++几乎都能胜任c和c++就语言本身来说区别不大,c++能兼容c,比c多了类,模板等,语法比c要求严 阅读全文
posted @ 2017-09-04 20:11 gd_沐辰 阅读(570) 评论(0) 推荐(0) 编辑
摘要:1.算数运算 1)+、-、* 2)/、% 整数相除,取整数部分。11%5=商2,余1 /和%不能对整数0进行操作,否则会中断程序。但是可以对浮点0进行操作,但是得到的结果是inf,表示无穷大。 %不能对浮点数使用。 /向零取整(取更接近0的数字)。 %的结果与其左操作数的符号一致。 2.赋值运算 1 阅读全文
posted @ 2017-09-04 20:09 gd_沐辰 阅读(131) 评论(0) 推荐(0) 编辑
摘要:1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。 2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用 阅读全文
posted @ 2017-09-04 20:08 gd_沐辰 阅读(353) 评论(0) 推荐(0) 编辑
摘要:系统菜单 如图,这是系统给出的菜单,也可以通过资源视图-》Menu进行修改。 通过结构体WNDCLASSEX wcex 进行加载: wcex.lpszMenuName = MAKEINTRESOURCE(IDC_MENUDEMO2); 菜单的互斥 点击某一菜单,其他菜单变成不可选择。 利用Enabl 阅读全文
posted @ 2017-09-03 21:54 gd_沐辰 阅读(366) 评论(0) 推荐(0) 编辑
摘要:组合框 Combo Box 注意:组合框本质也是窗口。 组合框,我也经常遇到,比如在填写资料,选择性别(男、女),或多个账号登陆等情形。如下图: 本例介绍三种组合框的形式: 第一种CBS_SIMPLE: 没有下拉按钮,直接显示部分选项,并且可以在“选项 0”处输入其他内容。 第二种CBS_DROPD 阅读全文
posted @ 2017-09-03 21:51 gd_沐辰 阅读(284) 评论(0) 推荐(0) 编辑
摘要:字体 在WIN32运用中会用到各种字体,那么如何设置字体的样式、大小、颜色呢? 设置颜色,字体属于文本,可以使用SetTextColor(hdc,RGB(255,0,0));进行字体颜色的改变。 下面介绍字体样式、大小。 函数原型: WINGDIAPI HFONT WINAPI CreateFont 阅读全文
posted @ 2017-09-03 21:50 gd_沐辰 阅读(552) 评论(0) 推荐(0) 编辑
摘要:Edit编辑框 我们经常使用的框框,比如:登陆账号、密码时。这就是编辑框。编辑框同样是窗口。 CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT",0,WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL,4,4,170,30,hWnd,NULL,hInst, 阅读全文
posted @ 2017-09-03 21:48 gd_沐辰 阅读(270) 评论(0) 推荐(0) 编辑
摘要:滚动条 Scrollbar 我们经常在网页、word,都会遇到可以向下或向上拉动的滚动条。那么如何实现的呢? 记住,滚动条也是窗口哦。 步骤:1.创建水平滚动条 SBS_HORZ 代表水平滚动条CreateWindowEx(0,"scrollbar",0,WS_CHILD|WS_VISIBLE|SB 阅读全文
posted @ 2017-09-03 21:48 gd_沐辰 阅读(308) 评论(0) 推荐(0) 编辑
摘要:Static 静态文本框 本例讲解静态文本框,从上面的图片可以看出,有三种颜色,其中绿色就是文本框(static)(本质就是一个窗口),而红色就是文本框上的字体,蓝色就是字体的背景颜色。 在前面讲过,按钮的本质就是窗口,那么此例的文本框也是一个窗口。 步骤: 1.创建出文本框 char str[12 阅读全文
posted @ 2017-09-03 21:46 gd_沐辰 阅读(560) 评论(0) 推荐(0) 编辑
摘要:通过WIN32 绘图,画出各种控件,如下: 注意:按钮的本质是窗口。换句话说,以上说显示的都是窗口,button,radio,checked box等都是一个窗口。 窗口函数原型: CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y 阅读全文
posted @ 2017-09-03 21:45 gd_沐辰 阅读(259) 评论(0) 推荐(0) 编辑
摘要:任务:在新建的窗口上画出一个小球,随着键盘的上、下、左、右的操作,小球也随着移动。 步骤:1.建立WIN32项目(不用自己写窗口,直接用) 2.将消息处理函数修改如下: LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, 阅读全文
posted @ 2017-09-03 21:42 gd_沐辰 阅读(171) 评论(0) 推荐(0) 编辑
摘要:任务:在新建的窗口上画出一个小球,随着时间,小球不断在窗口内跳动,碰到边界反弹,每反弹一次,改变一种颜色,当窗口改变大小,效果依然。 步骤:1.建立WIN32项目(不用自己写窗口,直接用) 2.将消息处理函数修改如下: #define IDT_BALL 100 LRESULT CALLBACK Wn 阅读全文
posted @ 2017-09-03 21:42 gd_沐辰 阅读(138) 评论(0) 推荐(0) 编辑
摘要:窗口创建过程和消息响应BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){ HWND hWnd; hInst = hInstance; // 将实例句柄存储在全局变量中 MessageBox(NULL,"创建之前","窗口",MB_OK); hW 阅读全文
posted @ 2017-09-03 21:41 gd_沐辰 阅读(180) 评论(0) 推荐(0) 编辑
摘要:#include<Windows.h>#include<stdio.h>#include"resource.h" //创建右键菜单void OnRButtonUp(HWND hWnd,LPARAM lParam){ HMENU hPop3=CreatePopupMenu(); POINT pt={0 阅读全文
posted @ 2017-09-03 21:39 gd_沐辰 阅读(128) 评论(0) 推荐(0) 编辑
摘要:#include<Windows.h>#include<stdio.h>//创建主菜单void MyAppenMenu(HWND hWnd){ //创建顶级菜单,并获取菜单句柄 HMENU hTopMenu = CreateMenu(); //创建下拉菜单,并获取下拉菜单句柄 HMENU hPopM 阅读全文
posted @ 2017-09-03 21:38 gd_沐辰 阅读(127) 评论(0) 推荐(0) 编辑
摘要:#include<Windows.h>#include<stdio.h> //#define WM_MYDESTROY 2HINSTANCE g_hInstance;HANDLE g_hOut;/*顶级菜单 窗口 下拉菜单的步骤1.创建好窗口2.创建顶级菜单3.创建下拉菜单 4.把下拉菜单置于顶级菜 阅读全文
posted @ 2017-09-03 21:37 gd_沐辰 阅读(153) 评论(0) 推荐(0) 编辑
摘要:#include <Windows.h> //wParam 一般处理最大化,最小化,关闭//lParam 一般处理窗口宽、高的变化#include<Windows.h> #define WM_MYDESTROY 2 LRESULT CALLBACK WndProc(HWND hWnd,UINT ms 阅读全文
posted @ 2017-09-03 21:37 gd_沐辰 阅读(137) 评论(0) 推荐(0) 编辑
摘要:#include<Windows.h> LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){ switch(msg) { case WM_CREATE: /*MessageBox(hWnd,TEXT("窗口 阅读全文
posted @ 2017-09-03 21:37 gd_沐辰 阅读(158) 评论(0) 推荐(0) 编辑
摘要:ROI 感兴趣区域,可以在一张图片上标志一块区域,对这块区域进行特殊处理。比如:把A图的头部设为感兴趣区域,再将同等大小的图覆盖在该感兴趣区域。实现贴图的效果。 核心函数: cvSetImageROI(img,rect); 在图img上设置大小rect的感兴趣区域。 cvCopy(sub_img,i 阅读全文
posted @ 2017-09-03 21:34 gd_沐辰 阅读(190) 评论(0) 推荐(0) 编辑
摘要:多通道的色彩分离 每一张图片都是有BGR(blue,green,red)的三个值组成。如果仅有一个值,那就成了灰度图。 本例就是就一张图片的三种颜色进行分离。 步骤: 1.加载图片。cvLoadImage("1.jpg",1); 此处为相对路径(要将图片放入程序的根目录),建议使用绝对路径。 2.从 阅读全文
posted @ 2017-09-03 21:33 gd_沐辰 阅读(328) 评论(0) 推荐(0) 编辑
摘要:矩阵数据访问 在上一讲中,我讲过用cvGet2D()来取得矩阵中的数值。 但是,调用函数还要不断分配内存空间。如果,数据非常大,500X500,那么内存空间够不够呢? 下面就介绍另一个方法,更高效率地访问矩阵。 C语言的优势就是拥有指针,可以直接对内存进行操作。 单通道: 与上一讲同样的例子: fl 阅读全文
posted @ 2017-09-03 21:32 gd_沐辰 阅读(316) 评论(0) 推荐(0) 编辑
摘要:结构体详解 1.IplImage 原型: typedef struct _IplImage { int nSize; /* sizeof(IplImage) */ int ID; /* version (=0)*/ int nChannels; /* Most of OpenCV functions 阅读全文
posted @ 2017-09-03 21:32 gd_沐辰 阅读(219) 评论(0) 推荐(0) 编辑
摘要:矩阵维度与通道 矩阵的格式与数组类似,在此以数组类比,理解什么是维度?什么是通道? float pArr[18]={10,15,20,25,30,35, 40,45,50,55,60,65, 70,75,80,85,90,95}; 上面是3行6列的数组。 维度:就是我们平常所说的坐标轴。二维:x,y 阅读全文
posted @ 2017-09-03 21:31 gd_沐辰 阅读(879) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-09-03 21:29 gd_沐辰 阅读(119) 评论(0) 推荐(0) 编辑
摘要:本例是实现类似播放器的功能。可以通过进度条来播放视频的进度、或某一位置。 思路: 1.要读取视频。cvCreateFileCapture(),建议使用绝对路径。 2.要获取视频的总帧数,这样才可以更好地设置进度条的范围。。cvGetCaptureProperty() 第二个参数与获取摄像头的函数一样 阅读全文
posted @ 2017-09-03 21:27 gd_沐辰 阅读(354) 评论(0) 推荐(0) 编辑
摘要:Opencv的结构: 1.cxcore 2.cv 3.Machine Learning (ML) 4.HighGUI 5.cvcam 6.cvaux 阅读全文
posted @ 2017-09-03 21:25 gd_沐辰 编辑