自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件和芯片来改变世界

  • 博客(26)
  • 资源 (33)
  • 论坛 (34)
  • 收藏
  • 关注

原创 reactos操作系统实现(147)

通过上面的学习,可以了解到GDI最终的输出都是通过小端口向显示硬件输出,以便在显示器上显示所需要显示的内容。那为什么需要有小端口驱动程序呢?其实这是为了方便所有显示卡制造厂家编写驱动程序,同时又可以让制造厂家保密他们的内部技术秘密。使用小端口的驱动程序,也可以统一显示驱动程序的接口,也就把显示驱动程序功能简化开发。下面来分析目录里reactos/drivers/video/miniport/v

2009-11-30 22:32:00 1506

原创 reactos操作系统实现(146)

 Reactos的显示组成主要由GDI、视频端口驱动程序、小端口驱动程序和显示驱动程序组成。当GDI系统接到应用程序请求后,就会查找相应的小端口驱动程序,接着小端口驱动程序,就会设置视频端口驱动程序和显示驱动程序。在GDI和小端口驱动程序调用流程如下图所示:

2009-11-29 18:52:00 1536

原创 reactos操作系统实现(145)

 前面的函数已经介绍怎么样显示一个字符串了,那么下面就来仔细地实查看怎么样实现一个字符的显示,当然这里字符的显示,只是字母的显示,没有中文显示,如果需要实现中文字符的显示,就需要修改这个函数和相应的排版函数、读取相应的字体文件。由于显示卡已经被初始化为图形模式,那么所有字符的显示都生成图形方式来显示,文字也不例外,因此需要使用字体的点阵数据。具体实现代码如下:#001  VOID#002 

2009-11-28 22:35:00 1257

原创 reactos操作系统实现(144)

 当操作系统引导过程中,需要输出一些信息给用户来查看,那么就需要这个简单的VGA驱动程序,可以输出字符串显示,实现这个功能的函数就是VidDisplayString函数,具体实现的代码如下:#001  VOID#002  NTAPI#003  VidDisplayString(PUCHARString)#004  {#005      ULONG TopDelta = 14

2009-11-27 23:24:00 1638

原创 reactos操作系统实现(143)

 VgaIsPresent函数通过读取图形模式的索引寄存器和数据寄存器来检查VGA显示卡是否安装,实现代码如下:#001  BOOLEAN#002  NTAPI#003  VgaIsPresent(VOID)#004  {#005      UCHAR VgaReg, VgaReg2,VgaReg3;#006      UCHAR SeqReg, SeqReg2;#

2009-11-26 21:59:00 1588

原创 reactos操作系统实现(142)

 VidInitialize函数主要进行VGA简单视频显示模式初始化。具体实现代码如下:#001  BOOLEAN#002  NTAPI#003  VidInitialize(IN BOOLEANSetMode)#004  {#005      ULONG Context = 0;#006      PHYSICAL_ADDRESSTranslatedAddress

2009-11-25 23:14:00 1456 1

原创 reactos操作系统实现(141)

 在操作系统启动的早期阶段,由于很多基本的功能没有初始化(比如IO管理器都没有初始化),因此完整和功能强大的显示驱动程序是不可能运行的,那么就需要在这个阶段写一个比较简单的VGA显示驱动程序给内核引导时使用,这个驱动程序就是bootvid.dll。 先来分析在内核里调用初始化的位置,具体如下:#001  VOID#002  NTAPI#003 Phase1Initializ

2009-11-24 23:34:00 2188 2

原创 reactos操作系统实现(140)

 在创建文件成功后,然后就往文件里写入数据,而写入数据说明就需要文件系统给文件分配储存空间,以便保存这些数据到磁盘里,下面就来分析分配文件大小的函数,如下:#001  NTSTATUS#002  VfatSetAllocationSizeInformation(PFILE_OBJECTFileObject,#003                  PVFATFCB Fcb,#

2009-11-23 22:29:00 1526

原创 reactos操作系统实现(139)

 当用户删除文件时,就会通过ReactOS的API调用IO管理器函数,然后创建IRP包发送到文件系统驱动程序来,然后就调用下面函数来把文件分配的簇从FAT分配表时删除。具体实现的代码如下:#001  static NTSTATUS#002  FATDelEntry(#003      IN PDEVICE_EXTENSIONDeviceExt,#004      IN PVFA

2009-11-22 11:58:00 1396

原创 reactos操作系统实现(138)

 在FAT里,需要从目录入口项里找到文件的首簇数,下面这段代码就是实现这样的功能,如下:#001  ULONG#002  vfatDirEntryGetFirstCluster(PDEVICE_EXTENSION  pDeviceExt,#003                               PDIR_ENTRY  pFatDirEntry)#004  {#0

2009-11-21 23:40:00 1302

原创 reactos操作系统实现(137)

 VfatHasFileSystem函数主要用来读取FAT文件系统信息,并且判断这个磁盘卷是否为FAT文件系统,具体实现如下:#001  static NTSTATUS#002 VfatHasFileSystem(PDEVICE_OBJECT DeviceToMount,#003                    PBOOLEANRecognizedFS,#004   

2009-11-20 23:08:00 1620

原创 reactos操作系统实现(136)

 VfatMount函数主要用来安装FAT文件卷,具体实现代码如下:#001  static NTSTATUS#002  VfatMount (PVFAT_IRP_CONTEXTIrpContext)#003  /*#004   * FUNCTION: Mount thefilesystem#005   */#006  {#007     PDEVICE_OBJ

2009-11-19 23:28:00 2085

原创 reactos操作系统实现(135)

 当从IO管理器里调用函数IopParseDevice来分析设备时,就可以找到相应的磁盘设备,并在这个函数里调用函数IopCheckVpbMounted来检查这个文件系统是否加载,如果没有加载,就会调用函数IopMountVolume来加载文件卷,那么在这个函数里就会构造一个IRP发送给文件系统驱动程序,驱动程序就收到主功能码为IRP_MJ_FILE_SYSTEM_CONTROL和次功能码为IRP

2009-11-18 22:34:00 1936

原创 reactos操作系统实现(134)

 文件控制块主要用来表示一个ReactOS打开文件的对象。下面就来仔细地分析文件控制块的结构,如下:#001  typedef struct _VFATFCB#002  { ROS的文件头部,主要包括文件流的描述和系统使用的变量。#003    /* FCB header required byROS/NT */#004    FSRTL_COMMON_FCB_HEAD

2009-11-16 22:59:00 1334

原创 reactos操作系统实现(133)

 VfatReadDiskPartial函数主要用来构造一个IRP给底层驱动程序去读取数据返回。具体实现代码如下:#001  NTSTATUS#002  VfatReadDiskPartial (INPVFAT_IRP_CONTEXT IrpContext,#003              IN PLARGE_INTEGER ReadOffset,#004          

2009-11-15 22:23:00 1361 1

原创 reactos操作系统实现(132)

 VfatReadFileData函数主要用来从磁盘上读取文件数据,具体实现代码如下:#001  static NTSTATUS#002  VfatReadFileData(PVFAT_IRP_CONTEXT IrpContext,#003                    ULONGLength,#004           LARGE_INTEGERReadOf

2009-11-14 23:00:00 1178

原创 reactos操作系统实现(131)

 VfatRead函数用来读取FAT文件系统里的文件数据,如果缓冲区里有数据就直接从缓冲区里读取,否则就从磁盘上读取。具体实现如下:#001  NTSTATUS#002  VfatRead(PVFAT_IRP_CONTEXTIrpContext)#003  {#004     NTSTATUS Status;#005     PVFATFCB Fcb;#006    

2009-11-12 23:26:00 1889 1

原创 reactos操作系统实现(130)

 vfatMakeRootFCB函数是用来创建FAT文件系统的根目录,实现代码如下:#001  PVFATFCB#002  vfatMakeRootFCB(PDEVICE_EXTENSION  pVCB)#003  {#004     PVFATFCB  FCB;#005     ULONG FirstCluster, CurrentCluster, Size = 0;#0

2009-11-10 22:43:00 1125

原创 reactos操作系统实现(129)

 功能驱动将构造请求包,就可以发送到底层总线驱动上。因此需要创建一个IRP,这就需要用IoBuildDeviceIoControlRequest创建一个IO控制码的IRP,用IoCallDriver将URB发送到底层总线驱动上。由于上层驱动无法知道底层驱动是同步还是异步完成的,因此需要做一个判断。if语句判断当异步完成IRP时,用事件等待总线驱动完成这个IRP。#001  NTSTATUS

2009-11-09 23:10:00 1202

原创 reactos操作系统实现(128)

 VfatOpenFile函数主要用来打开FAT的文件。具体实现代码如下:#001  static#002  NTSTATUS#003  VfatOpenFile (#004     PDEVICE_EXTENSION DeviceExt,#005          PUNICODE_STRINGPathNameU,#006     PFILE_OBJECT FileO

2009-11-08 23:22:00 1294

原创 reactos操作系统实现(127)

 从上面的代码里可以看到调用函数VfatAddEntry来添加文件或目录的入口,其实现的代码如下:#001  NTSTATUS#002  VfatAddEntry(#003      INPDEVICE_EXTENSION DeviceExt,#004      IN PUNICODE_STRING NameU,#005      IN PVFATFCB *Fcb,#0

2009-11-07 22:03:00 1125

原创 reactos操作系统实现(126)

 VfatCreateFile函数主要用来创建或者打开一个文件,具体实现如下:#001  static NTSTATUS#002  VfatCreateFile (PDEVICE_OBJECT DeviceObject, PIRP Irp )#003  /*#004   * FUNCTION: Create or opena file#005   */#006  {

2009-11-05 22:54:00 1319 1

原创 reactos操作系统实现(125)

 VfatCreate函数创建或者打开一个文件。具体实现代码如下:#001  NTSTATUS#002  VfatCreate(PVFAT_IRP_CONTEXT IrpContext)#003  /*#004   * FUNCTION: Create or opena file#005   */#006  {#007     NTSTATUS Status;

2009-11-04 22:15:00 1022

原创 reactos操作系统实现(124)

 从上面的入口函数里可以看到,很多消息处理函数都是调用函数VfatBuildRequest来处理的,具体实现代码如下:#001  NTSTATUS NTAPIVfatBuildRequest (#002          IN PDEVICE_OBJECTDeviceObject,#003          IN PIRP Irp)#004  {#005     NTS

2009-11-03 23:03:00 1119

原创 reactos操作系统实现(123)

 目前,Reactos主要使用FAT的文件系统,因此下面就先来分析这个文件系统,以便了解这个文件系统的功能。这个文件系统的实现是在驱动程序FASTFAT.SYS里实现的,所以来分析这个驱动程序的源码,就可以了解FAT文件系统了。 6.2.1 FAT文件系统驱动程序入口函数FAT的文件系统是当作一个驱动程序来加载到系统里,因此它也有驱动程序的形式了,也就是它的入口点函数,还是Driver

2009-11-02 22:07:00 1273

原创 reactos操作系统实现(122)

 IoReadPartitionTable函数是读取磁盘分区表数据。它的实现代码如下:#001  NTSTATUS#002  FASTCALL#003  IoReadPartitionTable(INPDEVICE_OBJECT DeviceObject,#004                       IN ULONGSectorSize,#005        

2009-11-01 10:50:00 1398

C++读写json文件

https://github.com/nlohmann/json 最好用的C++读写json库

2017-12-09

python抓取天气并分析 实例源码

Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报,原理是根据url找到网站截取相应的数据展现。 python抓取广州天气并分析 实例源码

2017-08-28

国产8051模拟器

一款国产的8051模拟器(全部源代码) 本软件是一款8051模拟器,他的特点是可以模拟多处理器平台,在简单的多工作区间的界面上可以很方便的模拟8051处理器, 最重要的是这个单片机系统可以完全由你自己订制,你甚至可以随意创建自己的多单片机系统,什么SMP 基于串行总线的分布式系统,集群式系统,只要你能想到的,都可以办到,充分发挥你的想象力。现在1.0版本已经基本体现出了这种思想,在以后的版本中将使这一特性变的 更加强大!

2016-09-10

python web py入门配套源代码

python web py入门- 实现论坛,开发技术:后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS。

2018-02-23

milang 1.0.5

本项目主要开发 学习 讨论小语 milang 编程语言 它是以python语法为基础 然后改进它语法 增加直接生成机器码 混合C++的优点 增加基于寄存器的虚拟机实现

2014-08-03

milang 1.0.4

本项目主要开发 学习 讨论小语 milang 编程语言 它是以python语法为基础 然后改进它语法 增加直接生成机器码 混合C++的优点 增加基于寄存器的虚拟机实现

2014-07-13

milang 1.0.3

本项目主要开发、学习、讨论小语(milang)编程语言,它是以python语法为基础,然后改进它语法、增加直接生成机器码,混合C++的优点,增加基于寄存器的虚拟机实现。

2014-06-07

Milang 1.0.2

本项目主要开发、学习、讨论小语(milang)编程语言,它是以python语法为基础,然后改进它语法、增加直接生成机器码,混合C++的优点,增加基于寄存器的虚拟机实现。 代码下载和上传见: https://code.csdn.net/caimouse/milang

2014-06-02

milang开发工具

组合了notepad和python 3.4的开发工具,可以集编辑和运行、结果查看为一体。

2014-05-24

svm_hog_data.rar

使用到LineSVC里进行机器学习的训练数据,用来训练手写识别。 配套专栏文章使用,https://blog.csdn.net/caimouse/article/details/104599920。

2020-03-02

实现numpy的C++库扩展

使用C++来扩展numpy里的数据计算,这时就需要使用numpy的扩展库功能了,下面就来提供一个使用C++编写numpy扩展库的模板,这样大家就要减少很多弯路,减少跌入坑里的成本。这个扩展库的模板是从mahotas库里抽取出来的,经过最大化的简化,这样更加容易理解,更方便学习。

2019-11-24

STM32F407VET6工程模板

玩转STM32里文章配置的代码,这里学习的第一个工程代码,可以作为后继开发的模板工程。

2019-03-14

webpy演示例子1

webpy演示例子1, 用于配套文章相关资源。python web py入门(9)- 论坛首页的模板中模板 前面已经提到一个模板中可以套用另外一个模板,现在就来看看这个论坛基本布局模板是怎么样的?

2018-02-21

胶囊模型的代码

胶囊模型的代码在以下论文中使用: “Dynamic Routing between Capsules” by Sara Sabour, Nickolas Frosst, Geoffrey E. Hinton. 要求 TensorFlow ( 访问 http://www.tensorflow.org 了解如何安装和升级) NumPy (详见http://www.numpy.org/) GPU

2018-02-02

wix3.11版本安装工具

wix3.11版本安装工具

2017-06-19

WiX3.10版本安装工具

WiX3.10版本安装工具

2017-06-19

GOOGLE的TPU论文

GOOGLE公开TPU的论文

2017-04-06

深度强化学习论文

DQN的论文

2017-03-17

书《深度学习》

2015年,深度学习三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在最新的《Nature》杂志首次合作的发表综述文章《Deep Learning》。本文为该综述文章的中文译文,深入浅出地介绍了深度学习的基本原理,核心优势和未来展望。

2017-03-13

手写识别的训练数据

MNIST训练数据

2017-03-10

俄罗斯方块游戏开发

俄罗斯方块游戏开发培训里的可执行文件,让大家可以查看相关的结果。以便是否参加培训。

2016-11-30

duilib界面库20161116

更新为VC2015编译的duilib,持续重构代码,使用最新的C++14的语法。

2016-11-16

duilib界面库20161017

duilib 界面库

2016-10-17

duilib界面库

duilib界面库,长期维护的界面库,在WIN10和VS2012上编译和开发、测试通过。

2016-10-10

mysql开发管理工具

mysql数据库的开发管理工具。

2016-07-12

mysql-5.5.50-64

windows下的64位MYSQL的版本。

2016-07-10

python-3.4.4

python 3.4的32位的windows版本

2016-07-01

tinyxml2配套源码

在软件开发过程中,为了使软件有灵活的配置,特别像界面这样的配置,同时为了减轻重复开发的任务,需要把客户的个性化需求可以通过配置文件来修改,比如像界面的颜色配置,就可通过配置文件来修改,这时就可以采用XML文件来保存和修改这些参数配置。在不同软件之间进行通讯时,也可以采用XML协议来进行数据交换,特别像WEB服务的调用时,采用传送XML格式是基本的数据交换方式。基于这些任务的需求,需要软件开发人员会在C++里使用xml格式。

2016-06-27

protoc2.5执行文件

protoc执行文件

2016-06-24

protobuf 2.5

protobuf 2.5库代码和工具

2016-06-24

selenium的浏览器驱动

目前有很多的银行网站,还是以IE为标准的浏览器,因此这里主要采用IE为测试的例子,在这里可以下载不同版本的浏览器驱动,可以是32位的,也可以是64位的,根据自己的需要下载不同的版本。在本文章里,下载的是2.35.3版本:IEDriverServer.exe,把它放在目录f:\temp\里面。

2016-06-14

WIX制作C#应用程序安装包

WIX制作C#应用程序安装包

2016-05-26

pythoncn-3.4.3

1. 使用VS2012编译。 2. 修改在VC11.0的库下运行pythonw.exe出错误的BUG。

2015-05-04

caimouse的留言板

发表于 2020-01-02 最后回复 2020-05-14

开发大联盟,VC人员开放大聚会

发表于 2001-11-05 最后回复 2012-05-23

C++编译器源程序学习!!!!!!!!!!!!!!!!!1

发表于 2003-12-26 最后回复 2004-01-07

FastBT下载 1.0.3.66版 2003.12.25 放分 一小时结.

发表于 2003-12-26 最后回复 2003-12-26

发布最新版本FastBT 1.0.1.27 高兴放分

发表于 2003-11-21 最后回复 2003-12-10

有没有分析过传奇网络通迅?

发表于 2003-07-10 最后回复 2003-11-28

Visual Studio.net 2003 7cd 下载

发表于 2003-08-27 最后回复 2003-09-01

Visual Studio.net 2003 7cd 下载

发表于 2003-08-27 最后回复 2003-08-28

怎么样实现在资源管理器多一个盘号?

发表于 2003-07-24 最后回复 2003-07-31

深圳治安真差,我差点就被打死了!

发表于 2003-05-12 最后回复 2003-05-23

开放源码的P2P文件共享研究Gnucleus

发表于 2002-07-24 最后回复 2003-05-06

怎么样实现从播放器播放的声音录下来?

发表于 2003-03-11 最后回复 2003-03-19

QQ死机的BUG?不信你就试试了。

发表于 2003-02-20 最后回复 2003-02-26

大家把自己有的技能交流一下

发表于 2003-01-24 最后回复 2003-01-28

有不有程序员取这么好有GF啊?

发表于 2003-01-15 最后回复 2003-01-24

在C++BUILDER里怎么调试进入PASCAL?

发表于 2003-01-08 最后回复 2003-01-08

猜谜语送分

发表于 2003-01-07 最后回复 2003-01-07

操作系统源码分析网

发表于 2002-12-17 最后回复 2003-01-03

有人写过硬盘驱动程序吗?

发表于 2002-12-16 最后回复 2002-12-17

怎么样才能写出一个像TObject类CObject来?

发表于 2002-12-04 最后回复 2002-12-11

有空来我cbuilder论坛

发表于 2002-11-21 最后回复 2002-12-04

有空来我VC论坛

发表于 2002-11-25 最后回复 2002-11-26

开发DOS的操作系统,作为实时操作系统

发表于 2001-10-29 最后回复 2002-02-17

在局部网内用UDP通过代理服务器连接外面的人,怎么样用VC写通过代理呢?

发表于 2001-09-24 最后回复 2002-02-05

UDP 代理问题?

发表于 2002-01-24 最后回复 2002-01-24

怎么样设置像ICQ或OICQ这样服务器?

发表于 2001-12-29 最后回复 2001-12-29

我的钱哪去了?

发表于 2001-12-17 最后回复 2001-12-17

在VC中这个错误为什么出现的?

发表于 2001-11-30 最后回复 2001-12-13

谁能说出ICQ目录下各个DLL文件用处?给高分!!!!

发表于 2001-11-27 最后回复 2001-11-27

怎么样更新CLISTBOX

发表于 2001-11-14 最后回复 2001-11-14

谁有空就用C写个DOS操作系出来?XP可没有DOS啊

发表于 2001-10-26 最后回复 2001-11-13

为什么国内没有人写出像<<深入浅出MFC>>这样的好书

发表于 2001-11-08 最后回复 2001-11-08

用C++能写DOS操系统吗?

发表于 2001-10-31 最后回复 2001-10-31

我们能不能把NASM的使用手册译成中文吗

发表于 2001-10-30 最后回复 2001-10-30

空空如也

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

TA关注的人 TA的粉丝

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