阅读:1794回复:9
C++ 写 Kernel Driver
各位,使用C++编写Kernel Driver可能有很多问题,如代码放在合适的代码段,而编译器可能自动为我们产生一些代码,Driver Studio使用SAFE_DESTRUCTORS来解决。
大虾们在解决这些问题时有什么心得,可否与大家分享? :P :P :P |
|
沙发#
发布于:2003-09-24 16:26
好像底层核心的东西都是用c或者汇编写的代码,而不是用c++
|
|
|
板凳#
发布于:2003-10-09 17:47
根据对C++不同特性的需要程度, 少量使用C++是可以的. 前提是你要知道编译器为你干了什么. 比如TRY/CATCH.会比TRY/EXCEPTION更好么. TRY/CATCH生成的代码是怎么样的等等.
尽量不要用C++. 这是我的建议. 虽然我自己的部分DRIVER代码转到了C++. 但是我只使用C++少数特性. 并且这些特性是我完全能控制的那部分. 否则是自寻烦恼. |
|
|
地板#
发布于:2003-10-09 19:18
在RING0中用C++,要么你是天才,要么你是蠢材,老老实实吧,我只用汇编和C,一般足以,要偷懒别玩RING0.
|
|
|
地下室#
发布于:2003-10-10 16:26
it\'s supperted by comlied tool
|
|
5楼#
发布于:2003-10-10 16:28
it\'s difficult to all for developing driver on the windows
|
|
6楼#
发布于:2003-10-10 18:41
根据对C++不同特性的需要程度, 少量使用C++是可以的. 前提是你要知道编译器为你干了什么. 比如TRY/CATCH.会比TRY/EXCEPTION更好么. TRY/CATCH生成的代码是怎么样的等等. 难道C写driver比C++好?我在这方面经验不多! 这个问题我也想问很久了 |
|
7楼#
发布于:2003-10-10 21:36
use C++ to write driver,
would someone post a sample? |
|
8楼#
发布于:2003-10-11 17:26
我懂了,知道为什么用C写driver了!
|
|
9楼#
发布于:2003-10-13 17:20
根据对C++不同特性的需要程度, 少量使用C++是可以的. 前提是你要知道编译器为你干了什么. 比如TRY/CATCH.会比TRY/EXCEPTION更好么. TRY/CATCH生成的代码是怎么样的等等. 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可以解决一部分问题,所以我想知道高手们在处理这个问题时的建议或原则 |
|