Windows驱动开发:用C还是C++

来源:互联网 发布:周杰伦secret知乎 编辑:程序博客网 时间:2024/06/09 20:11

转载自:http://blog.csdn.net/caperingrabbit/article/details/5103571

 

 

 在做windows驱动程序开发之前,首先要确定开发的语言。在常见的编程语言中,我们可以选择C、C++、汇编语言甚至Delphi。

不过由于微软提供的DDK开发环境所提供的文件和链接用的库只支持C和C++语言。所以一般都采用C或者C++。

使用C语言,是比较容易上手,因为很多人都是从学习C语言而学习程序开发的,而在驱动开发的时候,用C语言写相对比较简单,不需要考虑太多的限制。

用C++的话,在编译的时候,VC或者DDK都会出现调用错误的问题,这是因为调用方式不一致的缘故,因此,用C++开发的驱动程序,在DriverEntry前面一般

都要加上 extern “C” 这样的关键字,以统一调用方式。不过使用C++也有C++的优势,毕竟C++支持面向对象。在现在的程序设计中,面向对象是一种很重要的编程

思想,虽然在驱动程序的编写的过程中,一些C++的高级特性无法发挥,但是,相对而言,C++已近比较强大了。

另外,在使用C++进行驱动程序的开发的时候,需要注意一些问题:

²  New等操作符不能直接使用,如果要使用,必须进行重载。

²  标准C接口的声明,在包含头文件以及入口例程的前面要声明extern “C”

²  类的静态成员函数的使用:在类内部声明一个静态函数作为分发函数Dispatch函数,这个静态函数当做普通的C函数调用,而C++声明的非静态函数调用该函数进分配。