20楼#
发布于:2002-04-09 17:47
当然有啊!
NTDDK中的WDM驱动例子基本上都是模仿面向对象的技术,如win2000下的WDM audio driver,将标准实现和底层细节“封装”起来,形成基类,开发者通过\"继承”的方式来扩展“基类”的功能。 当然,这并不是纯粹的OOP,只是“基于对象”的方法而已。 |
|
21楼#
发布于:2002-04-10 07:38
Wish somedays can use our bbs\'s driver c++ class,who want to write it now?
|
|
22楼#
发布于:2002-04-10 10:54
好像OOP编程在流式设备驱动程序中较流行!
|
|
|
23楼#
发布于:2002-04-10 13:18
别忘了面向对象的目的。 如果仅是为了一次开发,还不如用C呢。
重要的是我们为驱动程序开发的类能否有利于我们的维护和重用,能提高开发效率,节约开发成本。 其实驱动程序采用面向对象挺好的,可是我现在还没实践过,因为驱动程序的结构和应用很特殊,类的实现的重用相对难的多。 不过我曾经看过一个CPU的固件程序中实现了很多的类,我想这也许可以叫做固件程序的面向对象开发吧。固件能的,驱动更没话说了。 |
|
|
24楼#
发布于:2002-04-10 16:51
CPU的固件程序 那一种? |
|
|
25楼#
发布于:2002-04-11 09:44
driver in mac os x is written in oop!
|
|
26楼#
发布于:2002-04-11 11:03
oop应该是一种思想,不是一门什么语言。
你用C也可以做到啊,甚至在汇编重也可以融合这种思想 |
|
|
27楼#
发布于:2002-04-11 14:55
别忘了面向对象的目的。 如果仅是为了一次开发,还不如用C呢。
重要的是我们为驱动程序开发的类能否有利于我们的维护和重用,能提高开发效率,节约开发成本。 严重同意上述观点! |
|
|
28楼#
发布于:2002-04-13 13:53
采用封装后的oop是有利于以后的代码复用原则,但是驱动程序要求高效,精简,所以多数用C开做,而把一些常用的东东分割成小模块,小模块完成独立的功能,以便日后复用
|
|
29楼#
发布于:2002-04-16 22:02
OOP可以直接访问硬件吗?
|
|
30楼#
发布于:2002-04-17 08:12
OOP可以直接访问硬件吗? 这和oop没有关系! |
|
|
31楼#
发布于:2002-04-17 16:15
我看过许多国外写的驱动,发现它们逐渐采用那个OOP来将驱动封装起来进行相关的使用。
|
|
32楼#
发布于:2002-04-19 14:36
用Numega的driver studio生成的driver框架就是OOP之类的
东东。 我一见就头疼... |
|
|
33楼#
发布于:2002-04-22 08:39
Kernel Streaming Driver里面就用到很多Class, interface
|
|
|
34楼#
发布于:2002-04-22 16:03
ds中的程序似乎是面向对象的
|
|
|
35楼#
发布于:2002-04-24 14:35
oop应该是一种思想,不是一门什么语言。 我比较同意这种观点,oop应该只是一种思想,和语言实现无关。有概念说C和C++的主要区别在于前者面向过程,而后者主要面向于对象,但我个人更趋向于接受两者都是C,只不过设计风格不一样,因为站在底层的角度看,最终都是和汇编一起编译成机器语言的,可能也只是函数地址调用有差异。就oop思想来说,看驱动最终目的而定,如果驱动服务于一类产品或重用,会考虑面向对象的。像windows和win CE的流式设备就有些这种思想,我原来在一个PDA的底层驱动中也曾经试过引入对象概念,虽然对于PDA的资源来说不会考虑一个物理资源有多个虚拟对象,不会有继承等概念,但也有对象成员变量和成员函数概念,应该接近于oop了,我觉得好处是容易屏蔽硬件,实现硬件平台移植。 OS_Dev也是搞底层的吗?以后向你多多请教,我刚接触底层不到一年,在学习中,e-mail:kinghjj@sina.com,多多联系。对于这个BBS也是刚进来,不熟悉,也请各位大虾多多指教。 [编辑 - 4/28/02 作者: znsoft] |
|
36楼#
发布于:2002-04-28 15:08
想到国外网站溜溜,各位能否推荐几个可交流的国外好网站。
|
|
37楼#
发布于:2002-04-28 15:10
各位能否推荐几个可交流的国外好网站;
|
|
38楼#
发布于:2002-05-08 08:08
见过用COM写device driver for Windows CE, 应该算oop吧.
|
|
39楼#
发布于:2002-05-09 15:51
[quote]oop应该是一种思想,不是一门什么语言。 我比较同意这种观点,oop应该只是一种思想,和语言实现无关。有概念说C和C++的主要区别在于前者面向过程,而后者主要面向于对象,但我个人更趋向于接受两者都是C,只不过设计风格不一样,因为站在底层的角度看,最终都是和汇编一起编译成机器语言的,可能也只是函数地址调用有差异。就oop思想来说,看驱动最终目的而定,如果驱动服务于一类产品或重用,会考虑面向对象的。像windows和win CE的流式设备就有些这种思想,我原来在一个PDA的底层驱动中也曾经试过引入对象概念,虽然对于PDA的资源来说不会考虑一个物理资源有多个虚拟对象,不会有继承等概念,但也有对象成员变量和成员函数概念,应该接近于oop了,我觉得好处是容易屏蔽硬件,实现硬件平台移植。 OS_Dev也是搞底层的吗?以后向你多多请教,我刚接触底层不到一年,在学习中,e-mail:kinghjj@sina.com,多多联系。对于这个BBS也是刚进来,不熟悉,也请各位大虾多多指教。 [编辑 - 4/28/02 作者: znsoft] [/quote] 赞同以上的观点。 面向对象主要是一种分析问题的方法,是一种思想。在分析和设计驱动时,用OO的方法可以使思路比较清晰。而具体实现时,可以根据驱动的复杂度,选用适宜的方法。对简单的驱动,可以直接用结构化的编码;而驱动中的数据结构比较复杂时,可以考虑用OOP,便于维护。 |
|