Windows驱动开发:用C还是C++
在做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++声明的非静态函数调用该函数进行分配。
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
第一篇文章终于落笔了,本文将从思考的角度去重新认识一下Helloworld。在例子之后会提出不同的问题,引导大家去思考每一句乃至每个细节。同时希望能够让大家以后能够以不断思考不断提问的方式去看待自己的程序。我相信大家会发现很多新的东西,好了切入正题。
我们每学一种新的语言基本都会从helloworld开始,基本每种语言 ......
C/C++数组名与指针区别深层探索
作者:宋宝华 e-mail:21cnbao_AT_21cn.com [AT -> @]
1. 引言
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多
程序设计者就被搞糊涂了。而许多的大学老师,他们在C 语言的教学过程中也错误得给学生讲解:“数 ......
extern除了能够用于声明变量,已经在外部被定义,不用重新定义和分配内存空间,还可以在C++与C进行相互函数调用方面会有很大的用处。
首先,我们来看一下,为什么C++和C语言不能相互进行函数调用:
编写如下的源文件:
int func(int i)
{
return 1;
}
&nbs ......