Windows驱动开发:用C还是C++
2013-04-07 15:41
281 查看
/article/9609636.html
在做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驱动程序开发之前,首先要确定开发的语言。在常见的编程语言中,我们可以选择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驱动开发:用C还是C++
- Windows驱动开发:用C还是C++
- web开发,asp.net/c++驱动,客户应用程序开发X86windows SDK DDK/windows mobile高手/c# ,c++ coding 够全了吧,抓紧哦
- 想做 C++ 方面开发,是基于 Linux 还是基于 Windows 平台?
- 100个windows平台C++开发错误之十一类
- Windows驱动开发(6) - DRIVER_OBJECT结构体
- 如何在Windows平台使用VS搭建C++/Lua的开发环境
- C++开发驱动中的重载问题
- Windows下安装Code::Blocks 13.12进行C/C++开发
- 配置windows下驱动开发环境
- [Windows驱动开发](二)Windows驱动程序环境搭配(VS2010 + WDK + VirtualDDK + VMware)
- android万能USB驱动的安装方法.(针对开发人员 windows)
- Windows驱动开发WDM (1) - 基本结构
- Windows驱动开发WDM (2)- 一个简单的WDM驱动程序
- [Windows驱动开发](一)序言
- Windows驱动开发(中间层)
- 程序开发方面(Windows、C++、OO Principle、Debug)的好东西
- 100个windows平台C++开发错误之十八数组
- windows 驱动开发工具
- Windows平台上C++开发内存泄漏检查方法