DeltaSoft
驱动牛犊
驱动牛犊
  • 注册日期2002-04-29
  • 最后登录2009-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1794回复:9

C++ 写 Kernel Driver

楼主#
更多 发布于:2003-09-22 16:04
各位,使用C++编写Kernel Driver可能有很多问题,如代码放在合适的代码段,而编译器可能自动为我们产生一些代码,Driver Studio使用SAFE_DESTRUCTORS来解决。

大虾们在解决这些问题时有什么心得,可否与大家分享?  :P :P :P
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-24 16:26
好像底层核心的东西都是用c或者汇编写的代码,而不是用c++
今天我发现我家的金鱼淹死了,:(
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-09 17:47
根据对C++不同特性的需要程度, 少量使用C++是可以的. 前提是你要知道编译器为你干了什么. 比如TRY/CATCH.会比TRY/EXCEPTION更好么. TRY/CATCH生成的代码是怎么样的等等.
尽量不要用C++. 这是我的建议. 虽然我自己的部分DRIVER代码转到了C++. 但是我只使用C++少数特性. 并且这些特性是我完全能控制的那部分. 否则是自寻烦恼.
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2003-10-09 19:18
在RING0中用C++,要么你是天才,要么你是蠢材,老老实实吧,我只用汇编和C,一般足以,要偷懒别玩RING0.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
jhome
驱动牛犊
驱动牛犊
  • 注册日期2002-07-04
  • 最后登录2005-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-10 16:26
it\'s supperted by comlied tool
jhome
驱动牛犊
驱动牛犊
  • 注册日期2002-07-04
  • 最后登录2005-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-10 16:28
it\'s difficult to all for developing driver on the windows
chacker
驱动小牛
驱动小牛
  • 注册日期2002-11-22
  • 最后登录2007-11-15
  • 粉丝0
  • 关注0
  • 积分193分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-10 18:41
根据对C++不同特性的需要程度, 少量使用C++是可以的. 前提是你要知道编译器为你干了什么. 比如TRY/CATCH.会比TRY/EXCEPTION更好么. TRY/CATCH生成的代码是怎么样的等等.
尽量不要用C++. 这是我的建议. 虽然我自己的部分DRIVER代码转到了C++. 但是我只使用C++少数特性. 并且这些特性是我完全能控制的那部分. 否则是自寻烦恼.


难道C写driver比C++好?我在这方面经验不多!
这个问题我也想问很久了
hong
驱动小牛
驱动小牛
  • 注册日期2001-09-19
  • 最后登录2005-12-16
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-10 21:36
use C++ to write driver,
would someone post a sample?
chacker
驱动小牛
驱动小牛
  • 注册日期2002-11-22
  • 最后登录2007-11-15
  • 粉丝0
  • 关注0
  • 积分193分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-11 17:26
我懂了,知道为什么用C写driver了!
DeltaSoft
驱动牛犊
驱动牛犊
  • 注册日期2002-04-29
  • 最后登录2009-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-10-13 17:20
根据对C++不同特性的需要程度, 少量使用C++是可以的. 前提是你要知道编译器为你干了什么. 比如TRY/CATCH.会比TRY/EXCEPTION更好么. TRY/CATCH生成的代码是怎么样的等等.
尽量不要用C++. 这是我的建议. 虽然我自己的部分DRIVER代码转到了C++. 但是我只使用C++少数特性. 并且这些特性是我完全能控制的那部分. 否则是自寻烦恼.



C++编译器较多,我们锁定VC++ 6.0写Windows平台的驱动程序


我认为在驱动程序中都可以使用C++, 只不过与系统接口部分必须是C或ASM

根据我看DriverStudio的源代码,可以得到部分原则:
1. 必须重载new ,delete, new [] , delete []
2. 不要使用任何C++标准库
3. 不要使用C++中的try, catch. 不过可以使用VC6 支持的try, catch
4. 如果整个程序都放在text段中较简单,不用考虑代码段问题,但如果程序有Init, Text, 等多个段就比较麻烦,很复扎。 DS中建议SAFE_DESTRUCTORS可以解决一部分问题,所以我想知道高手们在处理这个问题时的建议或原则
游客

返回顶部