|
![]() | 作者: yinhaidong [yinhaidong]
![]() |
登录 |
如果C/C++可以用来开发驱动程序的话,我该用Visual C++还是C++ Builder呢,他们之间有什么不同之处呢?是否都能够用来达到相同的目的?请大家多多指教。 |
地主 发表时间: 11/11 20:11 |
![]() | 回复: xtay [xtay] ![]() |
登录 |
不管你用什么语言,都能达到相同的目的。 |
B1层 发表时间: 11/11 23:08 |
![]() | 回复: xtay [xtay] ![]() |
登录 |
不管你用什么语言,都能达到相同的目的。 |
B2层 发表时间: 11/11 23:08 |
![]() | 回复: NetDemon [netdemon] ![]() |
登录 |
错了, 写驱动程序必须用MS-DDK,(类似SDK,你可以理解为VC的一个扩充插件) C++Builder是不适合的,当然,如果你够牛,用记事本加任何一个C编译器 也可以写出来,但没有人这么蠢 |
B3层 发表时间: 11/11 23:15 |
![]() | 回复: softlib [softlib] ![]() |
登录 |
VC,BCB 只能写 APP 程序。装套 DriverStudio 默认是 C+ 用 VC 辅 助编译,如果是 DDK 可以把 DDK 的 BUILD.EXE 集成到 VC 环境中。 |
B4层 发表时间: 11/12 00:40 |
![]() | 回复: flashsky [flashsky] ![]() |
登录 |
大家回答的都正确也都不准确 从语言上来讲:编写WIN的驱动必须用ANSI 语法,也就是说标准C语言,但允许嵌入DDK的API调用(类似UNIX的服务调用),这点你只要看一下DDK文档的第一篇就说的很清楚 WIN的驱动程序必须用DDK的build来编译,但是可以集成到VC编译器中一起运行,这意味着你可以使用任何一种编译器写代码,但是需要使用DDK的BUILD来构建最后的二进制代码(与VC集成了也只是VC去调用这个BUILD而已),你还需要手工的编写一些编译的配置文件。 |
B5层 发表时间: 11/12 09:11 |
![]() | 回复: yinhaidong [yinhaidong] ![]() |
登录 |
是不是就是用C语言加上DDK编译器呢?C和C++之间有什么不同呢?DDK是什么?请大家继续多多指教! |
B6层 发表时间: 11/12 09:43 |
![]() | 回复: softlib [softlib] ![]() |
登录 |
要这么说,那还有很多地方不正确。首先 WIN 驱动那么也包括 9X 下的, VToolsD 完全可以用 C+ 来写,把一些 DDK API 封状在类中。再说 NT/2K /XP 的。不知道都看没看过 OSR 和 PCAUSA 的一些例子,他们有很多例子 都是用 C+ 形式提供的。比如 OSR 的 CPP Kernel Runtime Library。还有说 ANSI 就等于 标准C 这完全是种错误的概念。ANSI 只是 美国国家标准化组织 的缩写。那么这个标准包括 ANSI C 也当然包括 ANSI C+。比如大多 STL 设计。 |
B7层 发表时间: 11/12 16:53 |
![]() | 回复: ricky [ricky] ![]() |
登录 |
http://www.driverdevelop.com/ 我以前就是在那里入的门,可以回答你的一切问题 |
B8层 发表时间: 11/12 17:02 |
![]() | 回复: flashsky [flashsky] ![]() |
登录 |
呵呵,多谢指教,不过有些问题 用VToolsD,OSR这些封装以后,当然可以用C++来写,不过不清楚是他们根据语法分析把对应的C++转成C以后再编译还是直接以C++编译?如果是前者就不能说C++可以写驱动,因为只是用C++的语法再把其转成C而不是使用C++本身的编译器来使用,那这样我可以用VB写驱动了,然后自己做个工具把其转化成C的语法也未尝不是可能。其实严格说什么语言都只是一种表示法而已,都可以写驱动,我就是用伪代码写,然后再自己写一个伪代码C的工具也行,只有用了对应的编译器生成的话,才会有很多不同,关于为什么强调用标准C,也正是出于这一点,DDK的文档上关于这点说的很清楚。如果是他们直接提供的C++编译器可以生成的驱动话,那就是我错了,有时间象你多请教这方面的一些知识。 DDK,WINPCAP,PCAUSA的源代码我查了一下,无论针对WIN9X和WIN2K的都没有CPP的代码,除了用于测试和安装的代码是CPP提供的,你估计看的有错吧。 关于ANSI是我说错了,我少打了一个C |
B9层 发表时间: 11/12 18:23 |
![]() | 回复: softlib [softlib] ![]() |
登录 |
我说的只是书写上,并没有提到编译。如果按你这么说,我那种说法肯定 是不严格。那就是我对题目理解上的问题。我写驱动时间不是很长。但 也有些日子。我想我还是能够分清APP与DRIVER区别的。我说的 CPP 都是 DRIVER,还提供了不少 LIB 封状了一些函数与操作符。如ExAllocatePoolXXX 等都以 new 形式给出。当然这也只是书写上的。 |
B10层 发表时间: 11/12 22:30 |
![]() | 回复: yinhaidong [yinhaidong] ![]() |
登录 |
你们越说越复杂!我急要这个驱动,请人写要多少钱呢? |
B11层 发表时间: 11/13 00:31 |
![]() | 回复: willok [willok] ![]() |
登录 |
要写个什么的驱动??给我说说!呵呵! 其实写驱动用什么语言不重要! 你就是用汇编也可以写但是效率太低了! 一般的开发环境是VC + DDK。语言用C或者C++,MS推荐用C 在这里VC的作用其实就是一个编辑环境! 还有就是DDK在编译的时候需要调用VC的一些库! 这里由于MS的原因在DDK中就只支持VC! 而且只能支持几个版本!(5.×-6.×)就连最新的.net都不支持! |
B12层 发表时间: 12/01 20:34 |
![]() | 回复: flyrise [flyrise] ![]() |
登录 |
算了,你们还是来研究单片机,其实单片机驱动就是一个最简单的硬件驱动程序,用ASM和C加必要的工具就行了。 请问各位有没有用C++BUILDER的?本人正在学,有时间请多指教!互相提高怎么样? My E-Mail:llf-home@163.net |
B13层 发表时间: 12/15 17:26 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号