计算机基础
文章平均质量分 55
安静平和
这个作者很懒,什么都没留下…
展开
-
OLE技术
第一讲:OLE概述OLE/ActiveX/COM技术是MS的核心应用技术,只有彻底洞察其理论精髓,才能以不变应万变。我们首先从OLE谈起。 一、过去的OLE和今天的OLE 作为COM技术前身的OLE,其最初含义是指在程序之间链接和嵌入对象数据(Object Link Embeded)。它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得转载 2015-07-10 10:39:08 · 12565 阅读 · 0 评论 -
内存映射文件详解-----C++实现
先不说内存映射文件(即一块内存和一个文件相映射对应)是什么。贴个代码先,。[cpp] view plaincopy#include #include #include #include using namespace std; int main() { //开始转载 2016-11-10 22:07:45 · 1073 阅读 · 0 评论 -
协议森林
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 互联网是为了通信,通信又依赖于协议。我们交谈时,要符合语法和用语规范。机器之间的通话也要符合协议。否则,鸡同鸭讲,无法相互理解。“协议森林”是我的一系列关于网络协议的文章,总结了多个网络协议。网络协议属于技术,但深受政策与历史的影响。Ethernet, IP, UDP,转载 2016-11-13 09:57:49 · 558 阅读 · 0 评论 -
协议森林01 邮差与邮局 (网络协议概观)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的转载 2016-11-13 09:58:46 · 332 阅读 · 0 评论 -
协议森林02 小喇叭开始广播 (以太网与WiFi协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! “小喇叭开始广播啦”,如果你知道这个,你一定是老一辈的人。“小喇叭”是五十年代到八十年代的儿童广播节目。在节目一开始,都会有一段这样的播音:“小朋友,小喇叭开始广播了!” 听到这里,收音机前的小朋友就兴奋起来,准备好听节目了:这一期的内容是以太网(Ethernet)转载 2016-11-13 11:08:39 · 407 阅读 · 0 评论 -
协议森林03 IP接力赛 (IP, ARP, RIP和BGP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 网络层(network layer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供转载 2016-11-13 13:28:48 · 444 阅读 · 0 评论 -
协议森林04 地址耗尽危机 (IPv4与IPv6地址)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!谢谢xwpcom纠错 IP地址是IP协议的重要组成部分,它可以识别接入互联网中的任意一台设备。在IP接力中,我们已经看到,IP包的头部写有出发地和目的地的IP地址。IP包上携带的IP地址和路由器相配合,最终允许IP包从互联网的一台电脑传送到另一台。转载 2016-11-13 14:29:14 · 366 阅读 · 0 评论 -
协议森林05 我尽力 (IP协议详解)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学。 IPv4与IPv6头部的对比我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必转载 2016-11-13 15:00:28 · 397 阅读 · 0 评论 -
协议森林06 瑞士军刀 (ICMP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 到现在为止,我们讲解了网络层中最重要的IP协议(参考协议森林)。IP协议的一个重要补充是是ICMP协议。 ICMP协议ICMP(Internet Control Message Protocol)是介于网络层和传输层的协议。它的主要功能是转载 2016-11-13 15:33:32 · 322 阅读 · 0 评论 -
协议森林07 傀儡 (UDP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer),协议的种类又开始繁多起来(比如TCP、UDP、S转载 2016-11-13 15:50:12 · 354 阅读 · 0 评论 -
C++静态库与动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库转载 2016-11-03 17:04:59 · 390 阅读 · 0 评论 -
动态库的动态加载和静态加载
动态库的动态加载方式调用,里面定义的数据结构理论上只作为dll内部使用!在这种情况下,如果这个dll的导出函数参数有内部定义的数据类型,显然是违反低耦合性原则的,实际上这种情况下编写dll方应该提供.h、.lib和.dll文件给使用者的,即你不能以动态库的动态加载方式调用,而是以动态库的静态加载方式调用! 换句话说,一般的只提供dll和导出函数文档这种情况,其dll中的导出函数参数列表都应该原创 2016-07-19 09:18:21 · 1950 阅读 · 0 评论 -
安装VMware虚拟机
虚拟机简介所谓虚拟计算机(简称虚拟机),实际上就是一种应用软件,例如VMware实际上也只是一种应用软件,其特别之处在于,由它创建的虚拟机与真实的计算机几乎一模一样,不但虚拟有自己的CPU、内存、硬盘、光驱,甚至还有自己的BIOS。在这个虚拟机上,可以安装Windows、Linux等真实的操作系统,及各种应用程序。● 常见虚拟机软件目前流行的虚拟机软件有VMware和Vir转载 2014-08-11 12:45:32 · 951 阅读 · 0 评论 -
组件和控件
一般把Control翻译成控件,把Component翻译成组件。 控件就是具有用户界面的组件。要说的具体一点,就得回顾早期 Windows 的历史根源,当时控件指任何子窗口——按钮、列表框、编辑框或者某个对话框中的静态文本。从概念上讲,这些窗口——控件——类似用来操作收音机或小电器的旋钮和按钮。随着控件数量的增加(组合框、日期时间控件等等),控件逐渐成为子窗口的代名词,无论是用在对话框中还是用在转载 2014-05-04 13:56:05 · 977 阅读 · 0 评论 -
进程 线程 应用程序域
进程的出现:(复习功课嘛,就把相关的内容都看看了,哎,都忘的差不多了) 进程由操作系统创建、管理的,离开了操作系统也就不谈什么进程了,先看看操作系统的四个基本特征: 1.并发(concurrence) 并行性与并发性这两个概念是既相似又区别的两个概念。并行性是指两个或者多个事件在同一时刻发生,这是一个具有微观意义的概念,即在物理上这些事件是同时发生的;而并发性是指两个转载 2014-07-24 11:12:28 · 940 阅读 · 0 评论 -
堆、栈、堆栈的含义(转)
堆”和“栈”是独立的概念平常说的“堆栈”实际上是两个概念:“堆”和“栈”。在英文中,堆是heap,栈是stack,不知道什么时候,什么原因,在中文里,这两个不同的概念硬是被搞在一起了,所以,围绕这个混合词所发生的误解和争执这几年就没有断过。 “栈”一般是由硬件(CPU)实现的,CPU用栈来保存调用子程序(函数)时的返回地址,高级语言有时也用它作为局部变量的存储空间。 “堆”是个实实转载 2014-07-24 18:14:40 · 1861 阅读 · 0 评论 -
堆栈 简单介绍
C/C++一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和转载 2014-04-07 17:43:33 · 687 阅读 · 0 评论 -
堆和栈的区别 (转贴)
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2014-07-24 14:19:39 · 593 阅读 · 0 评论 -
快照和镜像的区别
快照是一种基于时间点的数据拷贝技术,是数据备份领域的一个重要的概念,理解好快照,并且有效的管理快照,是磁盘管理中的重要一课。本文将讲述磁盘管理工具Storage Foundation中如何应用和管理快照。 快照的目的在于能够记录出某一个时刻的数据信息并将其保存,如果之后发生某些故障需要数据恢复的时候,可以通过快照来将数据恢复到之前时间点的状态,而该时间点之后的数据都会丢失。备份系统是转载 2016-03-01 15:07:39 · 22324 阅读 · 3 评论 -
lib和dll文件的区别和联系
什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37) (1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是转载 2016-02-03 17:41:29 · 802 阅读 · 0 评论 -
打印中,设备坐标与逻辑坐标转换
1、在屏幕的CDC中绘图时的坐标转换系统逻辑坐标——————屏幕坐标————————pDC逻辑坐标 我们调用GetWindowRect获得的是窗口的屏幕坐标Size。由于pDC默认的MapMode是MM_TEXT,所以我们可以直接使用Size作为逻辑大小填充窗口。 当然我们可以改变pDc的MapMode,这样我们逻辑坐标是Size,但是屏幕上出现的就不是Size了原创 2016-03-10 11:01:06 · 2053 阅读 · 1 评论 -
协议森林08 不放弃 (TCP协议与流通信)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! TCP(Transportation Control Protocol)协议与IP协议是一同产生的。事实上,两者最初是一个协议,后来才被分拆成网络层的IP和传输层的TCP。我们已经在UDP协议中介绍过,UDP协议是IP协议在传输层的“傀儡”,用来实现数据包形式的通转载 2016-11-13 17:44:54 · 319 阅读 · 0 评论 -
协议森林09 爱的传声筒 (TCP连接)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在TCP协议与"流"通信中,我们概念性的讲解了TCP通信的方式。可以看到,TCP通信最重要的特征是:有序(ordering)和可靠(reliable)。有序是通过将文本流分段并编号实现的。可靠是通过ACK回复和重复发送(retransmission)实现的。这一篇文转载 2016-11-13 18:35:56 · 308 阅读 · 0 评论 -
Linux进程间通信——使用共享内存
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc转载 2017-01-03 16:43:36 · 341 阅读 · 0 评论 -
64位进程调用32位dll的解决方法
在Windows7 X64,VS2008环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的遇到了64位进程需要调用32位dll的问题。由于有一些32位dll没有源代码,无法重新编译为64位dll,所以只能想办法解决64位进程调用32位dll问题。相关资料:微软公司的官方网站针对这个问题描转载 2016-12-26 11:38:19 · 12742 阅读 · 0 评论 -
32位模式下C/C++程序可用最大内存
关于32位程序申请大内存问题(1.6G). 我在win7 64系统上面测试Visual studio 10int* Test=new int[1024*1024*200];int* Test2=new int[1024*1024*200];申请1.6G内存.抛出:cpptest2.exe 中的 0x770e15ee 处有未经处理的异常: Micros转载 2016-12-20 16:30:47 · 908 阅读 · 0 评论 -
理解互斥量和信号量
互斥量(Mutex) 互斥量表现互斥现象的数据结构,也被当作二元信号灯。一个互斥基本上是一个多任务敏感的二元信号,它能用作同步多任务的行为,它常用作保护从中断来的临界段代码并且在共享同步使用的资源。 Mutex本质上说就是一把锁,提供对资源的独占访问,所以Mutex主要的作用是用于互斥。Mutex对象的值,只有0和1两个值。这两个值也分别代表了Mutex的两转载 2017-01-16 17:15:38 · 499 阅读 · 0 评论 -
大端小端格式详解
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了转载 2017-01-19 14:45:04 · 646 阅读 · 0 评论 -
Windows关闭错误报告弹窗
项目中需要第三方一个后台的第三方应用, 这就需要守护进程, 保证他一直在运行, 然而应用并不稳定.在Win7,Win8,Win10中某些程序出错会出现Windows错误报告, 并且暂停应用不会退出, 这时候进程守护就会失效.所以需要把错误报告弹窗关闭, 让程序发生错误后直接退出. 这样才能使守护进程生效.一:注册表关闭弹窗(这个方法即可, 另一个可以顺便)1、使用原创 2017-01-20 11:25:40 · 4119 阅读 · 0 评论 -
大端法、小端法、网络字节序
关于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endia转载 2017-04-08 12:04:48 · 659 阅读 · 0 评论 -
内存映射文件原理探索
一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。 原理首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑地址空间 中一块大转载 2017-06-02 11:25:07 · 404 阅读 · 0 评论 -
有关线程中断和线程阻塞
一个线程都要从运行到结束都要经过3个阶段: 1、正在运行 2、准备结束运行 3、结束运行那么怎么结束这个线程呢?可以通过下面这三个方法结束一个线程。 1、使用stop()方法强制结束线程。 2、使用thread.interrupt()方法发送中断。 3、在Thread对象中设置共享变量,通过在r转载 2017-05-22 16:52:28 · 756 阅读 · 0 评论 -
共享内存
共享内存 共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:共享内存的实现分为两个步骤:一、 创建共享内存,使用shmget函数。二、 映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。转载 2017-01-03 16:32:22 · 420 阅读 · 0 评论 -
内存映射文件
在做科研,实现一些大数据的算法的时候,经常要调用一些文件的I/O函数,在数据量很大的时候,除了设计的算法和数据结构的耗时以外,其实主要的耗时还是文件的I/O。因为一般常规的方法就是先读出磁盘文件的内容到内存中,然后修改,最后写回到磁盘上。读磁盘文件是要经过一次系统调用,先将文件的内容从磁盘拷贝到内核空间的一个缓冲区,然后再将这些数据拷贝到用户空间,实际上是两次数据拷贝。写回同样也需要经过两次数据拷转载 2017-01-03 16:00:51 · 507 阅读 · 0 评论 -
协议森林10 魔鬼细节 (TCP滑窗管理)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在TCP协议与"流"通信中,我们建立了滑窗(sliding window)的基本概念。通过滑窗与ACK的配合,我们一方面实现了TCP传输的可靠性,另一方面也一定程度上提高了效率。其工作方式如下面的视频所示:如果视频加载有问题,可点下面链接: ht转载 2016-11-19 12:06:29 · 393 阅读 · 0 评论 -
协议森林11 涅槃 (TCP重新发送)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。简单的说,TCP会不断重复发送TCP片段,直到片段被正确接收。 TCP片段丢失 TCP头部的checksum接收方(rec转载 2016-11-19 12:25:51 · 535 阅读 · 0 评论 -
协议森林12 天下为公 (TCP堵塞控制)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在TCP协议中,我们使用连接记录TCP两端的状态,使用编号和分段实现了TCP传输的有序,使用advertised window来实现了发送方和接收方处理能力的匹配,并使用重复发送来实现TCP传输的可靠性。我们只需要将TCP片段包装成IP包,扔到网络中就可以了。T转载 2016-11-19 12:54:00 · 387 阅读 · 0 评论 -
协议森林13 9527 (DNS协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在周星驰的电影《唐伯虎点秋香》中,周星驰饰演的主角一进入华府,就被强制增加了一个代号9527。从此,华府的人开始称呼主角为9527,而不是他的姓名。域名(domain name)是IP地址的代号。域名通常是由字符构成的。对于人类来说,字符构成的域名转载 2016-11-19 13:27:09 · 476 阅读 · 0 评论 -
协议森林15 先生,要点单吗? (HTTP协议概览)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我在TCP流通信中说明了,TCP协议实现了数据流的传输。然而,人们更加习惯以文件为单位传输资源,比如文本文件,图像文件,超文本文档(hypertext document)。*** 超文本文档中包含有超链接,指向其他的资源。超文本文档是万维网(World转载 2016-11-19 22:34:37 · 382 阅读 · 0 评论 -
协议森林16 小美的桌号(DHCP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址、DNS域名服务器地址等。一台电脑只要接上网,就可以通过DHCP协议获得相关配置,从而顺利的畅游网络。 网络配置电脑刚刚接上网络时,像一个走入一家新餐厅的食客,不免会有很多疑惑:转载 2016-11-19 23:22:53 · 375 阅读 · 0 评论