asslittle
驱动牛犊
驱动牛犊
  • 注册日期2003-12-18
  • 最后登录2004-09-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1231回复:3

驱动程序不能用C的标准库?

楼主#
更多 发布于:2004-03-03 16:25
windows wdm设备驱动程序开发指南一书中说,c标准库与c++的new运算符不能用.
但在driverstudio给的例子中,却用了new和delete?

我在驱动中使用了malloc和free,加进了几个库,编译连接都没问题,但插上设备却找不到驱动.究竟哪些库不能用在驱动中?
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-03 23:38
new和delete是C++的运算符,可以被重载,driverstudio已经将之重载了。其实new和delete主要是用来在heap中分配内存的。由于驱动程序涉及分页与非分页内存,不能使用标准库中的new和delete.

常见的标准IO库、文件操作库、操作系统相关库、字符串库等都不能直接使用。基本数学库一般没问题。但都要慎用。
A strong man can save himself. A great man can save another.
asslittle
驱动牛犊
驱动牛犊
  • 注册日期2003-12-18
  • 最后登录2004-09-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-04 09:24
十分感谢!


其实,我用这些库的目的也只是为了进行调试
我现在用DriverMonitor,还有更好的工具吗?

zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-04 09:41
如果做USB当然可以用Bus Hound了。可以观察到数据流。
A strong man can save himself. A great man can save another.
游客

返回顶部