rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
阅读:2232回复:11

在driver中最好不要用STL

楼主#
更多 发布于:2007-02-14 07:44
我同事狂喜欢C++和Compuware的STL,一定要坚持用这些。但最近在Vista上测试发现其实有很多bug,只不过以前Windows的verfier不知道为什么没有测试出来。其中一个就是STL的generic_lock,内部用的是KMUTEX,但STL的wait从来不检测KeWaitForMutexObject的返回值,这样造成即使没有持有mutex也要release => BSOD。

其他还有各种错误不一而足。这里提醒想用的兄弟,自己掂量着用。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
XiangXiangRen
总版主
总版主
  • 注册日期2003-02-22
  • 最后登录2015-09-01
  • 粉丝13
  • 关注0
  • 积分1042分
  • 威望472点
  • 贡献值1点
  • 好评度145点
  • 原创分13分
  • 专家分1分
沙发#
发布于:2007-02-14 08:35
如果你的标题为“在driver中最好不要直接用Compuware的STL”我表示赞同。但是说“在driver中最好不要用stl”我持保留意见。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-02-14 09:09
引用第1楼XiangXiangRen2007-02-14 10:35发表的“”:
如果你的标题为“在driver中最好不要直接用Compuware的STL”我表示赞同。但是说“在driver中最好不要用stl”我持保留意见。


我不知道你用的是哪个STL。Compuware的STL是stlport的改进版,stlport的版本本身就有这个问题,Compuware又引进了一点问题。MS的STL我也看过,也差不多。我本人不常用STL,所以除了这2个以外,不知道还有哪个。请告知。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2007-02-14 09:27
我连C++特性都不用,别说STL,不是不能用,而是不敢用,那玩意太复杂,自己时间又没那个能力自己实现,真正好点的也就DRIVER STUDIO里面的那个了,连它都不行的话,那就真的没办法了.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
XiangXiangRen
总版主
总版主
  • 注册日期2003-02-22
  • 最后登录2015-09-01
  • 粉丝13
  • 关注0
  • 积分1042分
  • 威望472点
  • 贡献值1点
  • 好评度145点
  • 原创分13分
  • 专家分1分
地下室#
发布于:2007-02-14 09:49
引用第2楼rayyang20002007-02-14 09:09发表的“”:


我不知道你用的是哪个STL。Compuware的STL是stlport的改进版,stlport的版本本身就有这个问题,Compuware又引进了一点问题。MS的STL我也看过,也差不多。我本人不常用STL,所以除了这2个以外,不知道还有哪个。请告知。


我使用我自己修改过的STL。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-02-14 10:11
引用第3楼wowocock2007-02-14 11:27发表的“”:
我连C++特性都不用,别说STL,不是不能用,而是不敢用,那玩意太复杂,自己时间又没那个能力自己实现,真正好点的也就DRIVER STUDIO里面的那个了,连它都不行的话,那就真的没办法了.....


和我的想法差不多,还是C好啊
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
6楼#
发布于:2007-02-14 13:02
写驱动一定要采用:能汇编,绝不C,能C,绝不C++政策
没有战争就没有进步 X3工作组 为您提供最好的军火
wuyanfeng
驱动小牛
驱动小牛
  • 注册日期2003-08-26
  • 最后登录2011-05-06
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望127点
  • 贡献值0点
  • 好评度103点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-02-14 13:45
不要用Compuware的STL ,自己移植 SGI 的 STL ,或者自己实现你要用的 容器.
只要自己能控制的住,用 汇编,c,c++都是一样的. 高级的东西能给你带来更多的好处.
使你的程序更容易维护. STL 主要是在于他的思想在里面.
xikug
驱动小牛
驱动小牛
  • 注册日期2001-09-25
  • 最后登录2013-09-27
  • 粉丝1
  • 关注0
  • 积分1001分
  • 威望169点
  • 贡献值0点
  • 好评度168点
  • 原创分1分
  • 专家分0分
8楼#
发布于:2007-02-14 13:47
一直都是用C。。。
http://www.debugman.com
XiangXiangRen
总版主
总版主
  • 注册日期2003-02-22
  • 最后登录2015-09-01
  • 粉丝13
  • 关注0
  • 积分1042分
  • 威望472点
  • 贡献值1点
  • 好评度145点
  • 原创分13分
  • 专家分1分
9楼#
发布于:2007-02-14 14:10
引用第6楼killvxk2007-02-14 13:02发表的“”:
写驱动一定要采用:能汇编,绝不C,能C,绝不C++政策


这一定二字说得太过了。理论上什么都可以用汇编。
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
10楼#
发布于:2007-02-19 23:44
可以不用c++,但是其中的c++原理有的时候还是挺好的,通过反汇编c++程序可以学写到内部实现原理应用到c上感觉挺不错的
走走看看开源好 Solaris vs Linux
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
11楼#
发布于:2007-02-20 00:14
引用第9楼XiangXiangRen2007-02-14 14:10发表的“”:


这一定二字说得太过了。理论上什么都可以用汇编。


不过通常汇编代码是嵌入的~
没有战争就没有进步 X3工作组 为您提供最好的军火
游客

返回顶部