10
29
2009
0

基于MSYS的Windows Driver开发

下载

本文中的涉及到的代码可以在这里下载:

介绍

警告:驱动程序开发对不熟悉的人来说是危险的,潜在会造成硬件的损坏和数据的丢失 请读者从这里开始三思而后行,如果造成以上描述的后果,笔者声明将不承担任何责任

世界上程序员总共有三种不同的工作,一种是操作系统内核开发程序员(比如微软内核部门和Linus Tovalds所从事的工作),又称核心开发者;一种是应用程序开发程序员,又称应用开发者,让用户通过该程序能够完成各种工作中需要完成的任务;最后一种就是驱动程序开发程序员(Driver Developer),又称接口开发者,为操作系统内核和应用程序之间提供硬件和用户交互的桥梁,让内核能够通过驱动驾驭硬件从而为应用程序提供控制和访问服务。

对于每一个操作系统来说,都有一套自己独特的驱动机制,虽然各有自己的风格和自己的安全保护、加载机制,但是对于程序员来说,所要解决的问题都是相同的,那就是:

Category: MSYS教程 | Tags:
10
29
2009
0

基于MSYS的Win32动态链接库DLL开发

介绍

动态链接库,是一个很古老,但又很常用的技术。在我们平时的代码编译中,通常是将静态库链接到程序中,最终静态库成为程序二进制的一部分而融合成一体,但是,这样的静态链接面临的一个问题就是,如果一个软件的各个部分是通过协商好接口,由不同的小组所编写的,那么如何能够让每一个小组独立的维护自己所属的部分,而不用重新编译其他人所开发的代码,动态链接库由此而生。

动态链接库,可以让每一个人维护的部分以独立的库的形式存在而不用与应用程序融为一体,也就是dll文件,应用程序调用其中的函数时,需要动态的加载和链接其中的函数,然后可以正常的与静态链接一样的进行操作。

实际上在后来的动态链接应用技术的发展之中,许多新的应用被人们挖掘出来,由于多个应用程序可以同时加载同一个动态链接库,就为基于动态链接库的多个程序通过共享内存进行进程间通讯(IPC)提供了可能。

在下面的文章中,我们只从初步角度介绍动态链接库以及在MSYS环境下,如何取代VC同样实现动态链接库的开发和使用。

Category: MSYS教程 | Tags:
10
29
2009
0

基于MSYS、MingW的Windows编程教程

1、开始前的准备

MSYS开发环境可以实现完整的Windows应用程序的开发,基于其内部的Windows API函数,我们可以实现任何我们想要实现的函数而不需要安装庞大的VC、.net开发环境。至于MS为什么要推出.net开发环境呢?凭我的个人理解,主要的原因是:

  1. 由于GNU推动的自由软件的发展,创造出了多门语言(包括TclTk、Python等)能够实现多种语言的专业人才能够同时开发同一个项目,实现多语言联合;
  2. 由于SUN公司的Java虚拟机得到了广泛的应用;
  3. 由于MFC传统对Windows API的封装效率过低,而且类的结构不符合人性化设计;

当然,这些也许只是一些片面的原因,但是最终微软设计出了.net代码开发框架,实现了以下的功能:

Category: MSYS教程 | Tags:

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com