- 博客(110)
- 资源 (17)
- 收藏
- 关注
转载 windows驱动开发 一
1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我们需要一个DDK/WDK。 2.DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别: 这个要说说驱动相关的
2013-11-29 17:27:32 927
转载 Win32汇编--图形操作--GDI原理
Win32汇编--图形操作--GDI原理 Windows是基于图形界面的,所以在Win32编程中,图形操作是最常用的操作。GDI的意义在于将程序对图形界面的操作和硬件设备隔绝开来,在程序中可以将所有的图形设备都看成是虚拟设备,包括视频显示器和打印机等,然后通过GDI函数用同样的方法去操作它们,由Windows负责将函数调用转化成针对具体硬件的操作。只要一个设备提供了和Windows兼容的驱
2013-11-29 17:21:13 2837
转载 windows编程之GDI基础(一)
首先需要解释下GDI:Graphics Device Interface.就是图形设备接口的意思. 那么什么又是图形设备接口呢? 他的意思就是所有关于图形绘制的东西都是和它有关的.我们在显示器上面显示的东西都是和GDI有关的.甚至windows自己绘制滚动条什么的都是用GDI的. GDI的原理: 在windows中,GDI主要是由GDI32.dll这个动态链接库里面
2013-11-29 17:16:56 929
转载 GDI编程小结
图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏幕输出。GDI负责Windows的所有图形输出,包括屏幕上输出像素、在打印机上输出硬拷贝以及绘制Windows用户界面。也就是Windows的图形编程。一、GDI体系结构1、 GDI32.DLL导出的函数GDI提
2013-11-29 17:15:12 1846
转载 通过注册表获取硬件信息
LONG QueryValue( LPTSTR szValue, LPCTSTR lpszValueName, DWORD* pdwCount )szValue:字符串数据类型的键值lpszValueName:所读取键值项的名称pdwCount:字符串大小成功读取注册表中某键值项的键值,成功返回ERROR_SUCCESS;失败返回错误值注意第三个参数,为存储该键值的大小
2013-11-29 17:06:44 6704 1
转载 用户模式和内核模式
运行 Windows 的计算机中的处理器有两个不同模式:“用户模式”和“内核模式”。根据处理器上运行的代码的类型,处理器在两个模式之间切换。应用程序在用户模式下运行,核心操作系统组件在内核模式下运行。多个驱动程序在内核模式下运行,但某些驱动程序在用户模式下运行。当启动用户模式的应用程序时,Windows 会为该应用程序创建“进程”。进程为应用程序提供专用的“虚拟地址空间”和专用的“句柄表格”。
2013-11-29 16:29:48 1415
转载 理解Windows内核模式与用户模式
内核层次架构windows程序运行分为内核模式和用户模式,内核模式可以访问所有的内存地址空间, 并且可以访问所有的CPU指令。一般程序运行在用户模式, 通过系统调用切换到内核模式执行系统功能,Windows系统通过这种方式来确保系统的安全和稳定。下面是内核的层次划分:硬件抽象层(Hardware Abstraction Layer) (HAL) (hal.dll)
2013-11-29 16:26:59 1396
转载 系统调用:系统调用的实现
7.3.3 系统调用的实现 1. 中断和陷入硬件机构 (1) 什么是中断和陷入。 中断是指CPU对系统发生某事件时的这样一种响应:CPU暂停正在执行的程序,在保留现场后自动地转去执行该事件的中断处理程序;执行完后,再返回到原程序的断点处继续执行。 (2) 中断和陷入向量。 2. 系统调用号和参数的设置 (1) 直接将参数送入相应的寄存器中。 (2)
2013-11-29 15:48:15 1006
转载 系统调用的实现及调用过程
我们在编程时用到的很多函数,如fork、open等这些函数最终都是在系统调用里实现的,比如说我们有这样一个程序:这里我们用到了两个函数,即fork和exit,这两函数都是glibc中的函数,但是如果我们跟踪函数的执行过程,看看glibc对fork和exit函数的实现就可以发现在glibc的实现代码里都是采用软中断的方式陷入到内核中再通过系统调用实现函数的功能的。具体过程我们在系统调
2013-11-29 15:42:48 3113
转载 系统调用如何实现
系统调用的实现与一般过程调用的实现相比,两者间有很大差异。对于系统调用,控制是由原来的用户态转换为系统态,这是借助于中断和陷入机制来完成的,在该机制中包括中断和陷入硬件机构及中断与陷入处理程序两部分。 中断和陷入硬件机构 图1所示为中断的处理过程。中断可进一步分为外中断和内中断。外中断是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等;而内中断则是指由于CPU内部事件所引
2013-11-29 15:41:50 4571 1
转载 windows api架构
每一个操作系统都要通过某种方式为开放人员提供一组服务---也就是Application Programming Interface(应用程序编程接口.API)..开发人员就通过API来编写应用程序.例如.DOS是用著名的INT 21h提供此接口的.(之前讲到的软件中断.具体功能需要查表.CPU指令).微软的操作系统也多时如此.当然API有几种实现..掌上电脑的(windowsCE)..
2013-11-29 15:28:27 1122
转载 NT.dll
打开NTDLL.dll,惊奇的发现原来CRT的许多基本函数居然都是在这里实现的!甚至包括qsort,ceil这样的函数,还有臭名昭著的 strcpy(严格来讲,这只能怪使用者不当心)。堆的释放,进城管理,似乎都是在这。于是,我决定,仔细察看以下它,这1410个函数是做什么的. 用户模式的代码在调用系统内核函数的时候,首先把一个叫做system call number的数放在EAX中,把参数放
2013-11-29 15:19:42 1748
转载 Linux 汇编器:对比 GAS 和 NASM
与其他语言不同,汇编语言要求开发人员了解编程所用机器的处理器体系结构。汇编程序不可移植,维护和理解常常比较麻烦,通常包含大量代码行。但是,在机器上执行的运行时二进制代码在速度和大小方面有优势。对于在 Linux 上进行汇编级编程已经有许多参考资料,本文主要讲解语法之间的差异,帮助您更轻松地在汇编形式之间进行转换。本文源于我自己试图改进这种转换的尝试。本文使用一系列程序示例。每个程序
2013-11-29 11:52:40 1089
转载 x86和X64
x86是对基于intel处理器的系统的标准缩写。X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指令集合,由于早期intel的CPU编号都是如8086,80286来编号,由于这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的指令集合如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家
2013-11-29 11:43:03 859
转载 Window上搭建汇编语言开发环境
1、下载masm 6.11安装程序,这是microsoft开发汇编开发环境,包括可视化开发工具,汇编工具masm,连接工具link.exe,调试工具debug.exe。当然这里也可以安装更高级版本的masm,但是要求比较多,还要装visual c++什么乱起八糟的工具,简便起见,就用6.x版本玩玩也够了; 2、设置环境变量,在path中添加%MASM_HOME%\BIN;%MASM_HOM
2013-11-29 11:27:24 899
原创 汇编开发工具
排序: 收录时间 | 浏览数80x86的汇编器NASMNASM是一个为可移植性与模块化而设计的一个80x86的汇编器。它支持相当多 的目标文件格式,包括Linux和'NetBSD/FreeBSD','a.out','ELF','COFF',微软16 位的'OBJ'和'Win32'。它还可以输出纯二进制文件。它的语法设计得相当的简 洁易懂,和Intel语法
2013-11-29 11:25:23 2630
转载 汇编语言开发环境搭建方法
汇编语言几乎是所有程序员在大学时的必修课,本文将给大家介绍的是四种汇编语言开发环境搭建方法由于这些日子一直都在研究底层的技术,从 Windows 驱动程序,到 Windows 内核等等技术的学习,让我对底层的技术越发有兴趣了,而刚好,在研究 WRK 时,对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,所以越发的想学习汇编程序设计来提升功力,而由于近来在
2013-11-29 11:01:39 1313
转载 汇编win7开发环境
我们的win 7 64位环境下,在DOS下竟然没有debug.exe,好不容易找到一个debu.exe,在DOS环境下调用,竟然是下面的结果:win7 64位和32位的debug.exe 不兼容。 就到网上找相关的解决办法,终于找到了一个很好的工具:DOSBOX。 一,下面就介绍下DOSBOX如何进入debug环境下: 1,DOSBOX本来是用来在win
2013-11-29 10:45:28 1247
转载 windows体系结构
Windwos 体系结构:--------------------------------------用户模式(ring3)系统进程、服务进程、应用程序、环境子系统(向应用程序提供环境和应用程序编程接口 Appplication Programming Interface-API。Windows 2000/XP 支持三种环境子系统:Win32、POSIX 和 OS/2,其中最重要的
2013-11-28 18:39:46 2192
转载 yaolog
写代码总免不了要看日志。就C++而言,不少程序员只是简单地用printf来输出日志,或者临时写个日志类,log4cpp等比较“重型”的日志库的使用率反而并不怎么高(至少从我经历的项目而言)。也许是不想为不需要的功能付出额外的学习成本,但无论如何,对于通用类别的工具采取临时手写的方式来应付,从长远考虑,在功能性和健壮性方面是得不偿失的。写这个日志类(yaolog)的最初的想法只是为了实现“输出到文件
2013-11-28 16:02:31 1595
原创 安装包工具
GKWare http://www.gkware.com/Inno setup http://www.jrsoftware.org/ Advanced Installer http://www.advancedinstaller.com/国内小兵安装包 http://www.cnxbsoft.com/xb/default.aspx
2013-11-27 16:59:19 610
转载 Microsoft IExpress:微软自带的安装程序包制作工具
iexpress是微软为压缩CAB 文件及制作安装程序所开发的小工具,专用于制作各种 CAB 压缩与自解压缩包的工具,其实应该算是MAKECAB 的一个Shell。虽一直藏身于微软的产品中,却从未对它说明过,但不能否认是一款不错的免费软件。使用 IExpress 可以创建自解压 CAB 压缩文件,压缩率与 WinRAR 相当。该软件为绿色软件,解压后就可以使用。其中的“Microsoft
2013-11-27 16:16:19 3759 1
原创 Simple DirectMedia Layer 视频解决方案
http://www.libsdl.org/Simple DirectMedia Layer 的官网SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用
2013-11-27 13:52:18 1632
转载 音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw
音频视频编程相关:GStreamer/ffmpeg/directshow/vfwlinux和window下几种流行的音频视频编程框架作一个总结,防止自己迷惘,免于晕头转向。一、GStreamerGStreamer is a library that allows the construction of graphs of media-handling components, r
2013-11-27 13:36:28 1358
转载 用C/C++开发基于VLC SDK的视频播放器
在windows系统如果开发万能播放器,一般都是基本DirectShow来开发,开发也很简单,但缺点也很多,一个文件格式是否能够播放完全取决于你是否安装了正确的解析器和解码器,即使现在有了万能解器安装包也会出现很多问题,不过自从很多开源软件的出现,比如大名鼎鼎的ffmpeg,vlc等,一切都变得简单起来,基于ffmpeg sdk开发就不多介绍了,本文主要介绍基于 VLC SDK来开发自己的播放器,
2013-11-27 13:15:26 4460
转载 多媒体开发
当前,在Windows 平台下开发视频应用程序一般采用两种方式:一种是基于视频采集卡所附带的二次软件开发包SDK(Software development kit)进行。这种方式的优点是应用方便,容易上手,缺点是对硬件的依赖性较强,灵活性差,且功能参差不齐,不能充分满足各种视频应用程序的开发需要;另一种方式是基于VFW(Video for Windows)进行的。VFW 是Microsoft公
2013-11-27 13:04:40 1370
原创 AnyChat SDK
AnyChat SDK是一套多媒体即时通讯平台库,大部分需要用到音视频交互的系统都可以采用AnyChat SDK来开发。AnyChat SDK内部封装了音视频的采集、编码、传输、解码以及播放(显示)功能,只需要几个简单的API调用,即可实现多个用户之间的语音、视频、文字交互,由于内核已经实现了P2P网络,所以上层应用不需要关心复杂的网络传输问题,简化了上层应用的开发难度,上层应用的开发人员可以把更
2013-11-27 11:39:43 1875
原创 开源日志库
muduo 0.5.0 也包含了这个日志库 http://code.google.com/p/muduo/ zlog是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。作者编写的初衷是因为log4c不给力,而log4j、log4cxx等log4系列的日志函数库在概念上不正确。zlog继承了unix操作系统中syslog的伟大传统,将日志系统的分类、级别、输出方向、输出格式完全解耦。
2013-11-26 18:17:46 1642
转载 Glog日志库
开源项目首页:https://code.google.com/p/google-glog/Glog项目路径: https://code.google.com/p/google-glog/downloads/list第一步,下载glog-0.3.3.tar.gz,解压,直接打开google-glog.sln工程文件,如果vs版本不对,让其自动转换第二步,编译,在Debug
2013-11-26 17:23:50 3257
转载 WINNT内核
一、直观认识Windows分析一个软件,最容易的入手方法就是先搞清楚它的每个文件都是干嘛的。我们先来让大家对自己正在使用的Windows 操作系统有个直观认识。请在你使用的Windows 2000或Windows XP上,于WINNT/system32或Windows/system32目录(系统目录)下,找到以下几个文件:HAL.DLL、NTOSKRNL.EXE、NTDLL.DLL、KERNE
2013-11-26 15:38:16 1324
转载 世界十大游戏引擎
第10位:The Dead engine,死亡引擎,美国EA公司重制过的引擎,代表作是《死亡空间》系列。第9位:Mt Framework引擎,日本Capcom公司为了所有“capcom次时代游戏”而打造的,代表作是《鬼泣4》,《生化危机5》等等。第8位:Anvil引擎,美国育碧公司,代表作是《刺客信条》,《波斯王子》。第7位:EGO引擎,这个引擎大部分游戏都是赛车游戏,代表
2013-11-26 13:11:34 8431
转载 图像处理库
1.对OpenCV的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法;然后将图像格式和矩阵运算,然后将各个算法的实现函数。我用它来做了一个Harris角点检测器和Canny边缘检测器,总共就花了一个小时(第一次用OpenCV)。而且该库显示图像极其方便,两句话就可以。但该库似乎不大稳定,对32F和1
2013-11-26 11:50:51 1143
转载 几种图像处理库的研究
几种图像处理库的研究目前比较出名的图像处理库有很多,比如LEADTOOLS,这个是功能非常强大的图像多媒体库,但是这个是收费注册的。开源的图像库也有不少,比如:ImageStone、GIMP、CxImage等,虽然它们的功能没有LEADTOOLS强大,但是一般的图像处理是可以应付的。下面分别介绍这几种图像处理库的使用方法。LEADTOOLSLEAD Technologies 是一个
2013-11-26 11:44:16 4977
转载 Tesseract 3 语言数据的训练方法
需要用到的程序(1) Tesseract 3.00(2) Tesseract 3.00 Bugfix(3) CowBoxer 1.01(4) Universal Extractor 1.61 (非必需)使用 Universal Extractor 将 Tesseract 的安装包解开,再用 Bugfix 里的 tesseract.exe 覆盖原来的主程序
2013-11-26 11:32:57 851
原创 常见C/C++ XML解析器比较
常见C/C++ XML解析器有tinyxml、XERCES、squashxml、xmlite、pugxml、libxml等等,这些解析器有些是支持多语言的,有些只是单纯C/C++的。如果你是第一次接触到XML解析,那么关于XML解析器的选择问题的确令人头疼,我们先看一下这些解析器有哪些特点。一、Xerces XML解析器官方网址:http://xerces.apache.org/xerce
2013-11-26 10:39:41 1670
转载 字符编码问题,UNICODE\UTF-8\UTF-16\UTF-32\UCS\ANSI\GBK\GB2312等乱七八糟的名词
字符编码的问题让我困惑了好久的一段时间,其实简单的想,字符编码没有什么东西的,可是想真弄明白还是花去了我一点时间,前端时间写了一个简单的log程序,主要的工作就是支持系统运行时输出日志信息,同时允许定制不同级别的日志输出,刚开始的时候只是写入到文件中,可用过之后发现,只是写入到文件中,在进行系统调试的时候不是很方便,还要打开文件,浏览,再返回源代码,如果能够有一个界面展示岂不是更好,列表显示日志,
2013-11-26 10:24:47 992
转载 各字符集
1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位
2013-11-26 10:16:52 589
转载 深入了解字符集和编码
一、什么是字符集?什么是编码? 字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 一组抽象字符的集合就是字符集(Charset)。 字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。 一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。 字符集的子集也是字符
2013-11-26 10:08:30 807
原创 Apache所有版本下载(官方地址)
Apache所有版本下载(官方地址)Apache所有版本下载(官方地址)apache_1.3.17-win32-no_src.msi 02-Feb-2001 07:17 1.7Mapache_1.3.17-win32-src.msi 02-Feb-2001 07:11 2.8Mapache_1.3.19-
2013-11-23 19:05:33 5974 5
Dll机制的测试
2013-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人