tntxw
驱动牛犊
驱动牛犊
  • 注册日期2002-04-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1711回复:12

关于new 和 delete

楼主#
更多 发布于:2002-04-17 08:07
我想在win2000下的并口驱动中建一链表,能用new 来分配内存空间
吗,如不能,应用何函数。
                                   谢谢
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-17 08:22
不能。
驱动中分配内存用ExAllocatePool,ExFreePool,ExAllocatePoolWithTag等;
另外在驱动中使用链表必须使用如LIST_ENTRY数据结构:InitializeListHead,InsertTailList,以及对应的KSPIN_LOCK;
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-04-17 08:31
用户被禁言,该主题自动屏蔽!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-04-17 10:12
在内核分配内存,要求很多。不能用new和delete
wilton
驱动牛犊
驱动牛犊
  • 注册日期2001-04-23
  • 最后登录2005-03-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-17 12:24
可以使用new和delete。
但是你必须重载。关于new和delete的重载比较复杂,如果你想保证所有的new和delete都能用,要做很多的工作。
如果你只想凑合用,很简单。看看《C++编程思想》就可以了(尽管这本书不怎么样,对付这种问题还是绰绰有余)。
这里的人没几个懂C++,这种问题最好不要在这里问。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-04-17 12:32
可以使用new和delete。
但是你必须重载。关于new和delete的重载比较复杂,如果你想保证所有的new和delete都能用,要做很多的工作。
如果你只想凑合用,很简单。看看《C++编程思想》就可以了(尽管这本书不怎么样,对付这种问题还是绰绰有余)。
这里的人没几个懂C++,这种问题最好不要在这里问。
 


这话不一定对吧?应该说这里的人没几个不懂C++,只是还是用C。
halley
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-17 16:23
重载new和delete以后还是要调用ExAllocatePool,ExFreePool等函数,没什么必要吧
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2002-04-17 16:29
有必要绕过南极到达北极吗? :D :D :D
whlhacr
驱动牛犊
驱动牛犊
  • 注册日期2002-02-20
  • 最后登录2002-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-17 18:11
wilton
驱动牛犊
驱动牛犊
  • 注册日期2001-04-23
  • 最后登录2005-03-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-17 19:29
你去问问Bjarne Stroustrop为什么要引入new和delete?
难道好处还要我说吗?为什么驱动不用C++?对于这种愚蠢的话语,例如:“有必要绕过南极到达北极吗”,“重载new和delete以后还是要调用ExAllocatePool,ExFreePool等函数,没什么必要吧

”,恕我不再回应。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-04-17 19:43
好像有人很生气的样子。 :)
zhch111
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2003-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-17 23:45
重载new和delete以后当然不必要调用ExAllocatePool,ExFreePool了,可是虽然知道面向对象的优点很多,但在做驱动的时候,还是用C习惯些。
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-18 13:17
wilton,你说话真不好听
这儿的C++高手当然多的是

tntxw你若嫌自己重载麻烦就用DriverWorks吧,让别人帮你做好
游客

返回顶部