cathyzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-14
  • 最后登录2006-02-23
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2002-04-09 17:47
当然有啊!

NTDDK中的WDM驱动例子基本上都是模仿面向对象的技术,如win2000下的WDM audio driver,将标准实现和底层细节“封装”起来,形成基类,开发者通过\"继承”的方式来扩展“基类”的功能。

当然,这并不是纯粹的OOP,只是“基于对象”的方法而已。
jerf.cat
驱动中牛
驱动中牛
  • 注册日期2002-03-30
  • 最后登录2005-09-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2002-04-10 07:38
Wish somedays can use our bbs\'s driver c++ class,who want to write it now?
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2002-04-10 10:54
好像OOP编程在流式设备驱动程序中较流行!
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
skysky
驱动小牛
驱动小牛
  • 注册日期2001-07-18
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2002-04-10 13:18
别忘了面向对象的目的。 如果仅是为了一次开发,还不如用C呢。

重要的是我们为驱动程序开发的类能否有利于我们的维护和重用,能提高开发效率,节约开发成本。

其实驱动程序采用面向对象挺好的,可是我现在还没实践过,因为驱动程序的结构和应用很特殊,类的实现的重用相对难的多。

 不过我曾经看过一个CPU的固件程序中实现了很多的类,我想这也许可以叫做固件程序的面向对象开发吧。固件能的,驱动更没话说了。
以德服人,以德服人
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2002-04-10 16:51
 
CPU的固件程序


那一种?
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
halley
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2002-04-11 09:44
driver in mac os x is written in oop!
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2002-04-11 11:03
oop应该是一种思想,不是一门什么语言。
你用C也可以做到啊,甚至在汇编重也可以融合这种思想
I know nothing!
cjp
cjp
驱动牛犊
驱动牛犊
  • 注册日期2002-02-19
  • 最后登录2008-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2002-04-11 14:55
别忘了面向对象的目的。 如果仅是为了一次开发,还不如用C呢。

重要的是我们为驱动程序开发的类能否有利于我们的维护和重用,能提高开发效率,节约开发成本。

严重同意上述观点!
CJP
glqgglq
驱动小牛
驱动小牛
  • 注册日期2001-04-16
  • 最后登录2008-10-28
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2002-04-13 13:53
采用封装后的oop是有利于以后的代码复用原则,但是驱动程序要求高效,精简,所以多数用C开做,而把一些常用的东东分割成小模块,小模块完成独立的功能,以便日后复用
zskywalker
驱动牛犊
驱动牛犊
  • 注册日期2002-03-30
  • 最后登录2003-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2002-04-16 22:02
OOP可以直接访问硬件吗?
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2002-04-17 08:12
OOP可以直接访问硬件吗?
 

这和oop没有关系!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
lin_gx
驱动牛犊
驱动牛犊
  • 注册日期2001-05-23
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望100点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
31楼#
发布于:2002-04-17 16:15
我看过许多国外写的驱动,发现它们逐渐采用那个OOP来将驱动封装起来进行相关的使用。
jeffhu
驱动牛犊
驱动牛犊
  • 注册日期2002-02-21
  • 最后登录2005-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2002-04-19 14:36
用Numega的driver studio生成的driver框架就是OOP之类的
东东。 我一见就头疼...
hehe
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2002-04-22 08:39
Kernel Streaming Driver里面就用到很多Class, interface
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
crazy
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2002-04-22 16:03
ds中的程序似乎是面向对象的
crazy
kinghjj
驱动牛犊
驱动牛犊
  • 注册日期2002-04-24
  • 最后登录2002-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
35楼#
发布于:2002-04-24 14:35
oop应该是一种思想,不是一门什么语言。
你用C也可以做到啊,甚至在汇编重也可以融合这种思想
 

我比较同意这种观点,oop应该只是一种思想,和语言实现无关。有概念说C和C++的主要区别在于前者面向过程,而后者主要面向于对象,但我个人更趋向于接受两者都是C,只不过设计风格不一样,因为站在底层的角度看,最终都是和汇编一起编译成机器语言的,可能也只是函数地址调用有差异。就oop思想来说,看驱动最终目的而定,如果驱动服务于一类产品或重用,会考虑面向对象的。像windows和win CE的流式设备就有些这种思想,我原来在一个PDA的底层驱动中也曾经试过引入对象概念,虽然对于PDA的资源来说不会考虑一个物理资源有多个虚拟对象,不会有继承等概念,但也有对象成员变量和成员函数概念,应该接近于oop了,我觉得好处是容易屏蔽硬件,实现硬件平台移植。
OS_Dev也是搞底层的吗?以后向你多多请教,我刚接触底层不到一年,在学习中,e-mail:kinghjj@sina.com,多多联系。对于这个BBS也是刚进来,不熟悉,也请各位大虾多多指教。



[编辑 -  4/28/02 作者: znsoft]
zhpingl
驱动牛犊
驱动牛犊
  • 注册日期2002-04-25
  • 最后登录2002-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
36楼#
发布于:2002-04-28 15:08
想到国外网站溜溜,各位能否推荐几个可交流的国外好网站。
zhpingl
驱动牛犊
驱动牛犊
  • 注册日期2002-04-25
  • 最后登录2002-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2002-04-28 15:10
各位能否推荐几个可交流的国外好网站;
andyzhang_dd
驱动牛犊
驱动牛犊
  • 注册日期2002-05-08
  • 最后登录2002-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
38楼#
发布于:2002-05-08 08:08
见过用COM写device driver for Windows CE, 应该算oop吧.
seant
驱动牛犊
驱动牛犊
  • 注册日期2001-07-05
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
39楼#
发布于:2002-05-09 15:51
[quote]oop应该是一种思想,不是一门什么语言。
你用C也可以做到啊,甚至在汇编重也可以融合这种思想
 

我比较同意这种观点,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,便于维护。
游客

返回顶部