首页
社区
课程
招聘
[原创]Delphi研究之驱动开发篇(一)--实现原理
发表于: 2008-1-5 21:48 55417

[原创]Delphi研究之驱动开发篇(一)--实现原理

2008-1-5 21:48
55417
收藏
免费 7
支持
分享
最新回复 (73)
雪    币: 210
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
老师,你的MSN整天不在线呀!昨晚等到凌晨3点
2008-4-10 15:59
0
雪    币: 1004
活跃值: (75)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
27
不好意思,偶这两天在外地出差呢,所以没法上网,见谅。
2008-4-11 22:00
0
雪    币: 22
活跃值: (458)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
好帖留名,支持继续更新下去
2008-4-25 11:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
C:\Documents and Settings\Administrator>"C:\Program Files\Borland\Delphi7\Bin\dc
c32.exe" -U C:\DDDK\inc\ -B -CG -JP -$A-,C-,D-,G-,H-,I-,L-,P-,V-,W+,Y- beeper.pa
s
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
Fatal: File not found: 'C:\DDDK\inc\.dpr'

我连接不上,请问这是什么原因

补充:

没注意看楼上的贴,已经有答案了,但对我这类菜鸟,没有视频教程是很难以理解.

如果楼主有空,能否做一个简单点的动画教程,方便我等小菜.^_^
2008-4-29 15:43
0
雪    币: 1004
活跃值: (75)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
30
呵呵,把-U后面那个空格删了就好.
2008-4-30 11:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
解决了.
dcc32.exe -jP -$A-,B-,C-,D-,G-,H-,I-,J-,L-,M-,O+,P-,Q-,R-,T-,U-,V-,W+,X+,Y- beeper.pas

听到了三声清脆的声音.

继续你的二,三,四,五,六,篇去了.

可能还得发贴问.哈
2008-4-30 15:02
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
老大有没有介绍filedisk的?(filedisk只支持img,iso,且是VC的代码)
还有,看了你dddk中TDeviceObject和jwa或windowsddk的都不同的
是你定义错了,还是我找到的是一个同名的结构?

本想自己做filedisk,但是头文件改动太多了,只能暂时等等老大了
2008-5-1 04:09
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
        dcc32 -UC:\KmdKit4D\include -B -CG -JP -$A-,C-,D-,G-,H-,I-,L-,P-,V-,W+,Y
- -O+ beeper.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
beeper.pas(1) Fatal: File not found: 'System.pas'

** error 1 ** deleting beeper.obj
怎么会有这个错误啊
2008-5-10 06:17
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
搞好了,呵呵
2008-5-10 07:48
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
我是用D7的,邮箱:liyong503@163.com!
先谢了哦!
2008-5-12 12:11
0
雪    币: 1004
活跃值: (75)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
36
其实是一样的,只是delphi中结构定义和C不同,delphi不支持嵌套结构的,所以我在定义TDeviceObject时用了变通的方法,看着似乎不同,其实是一样的。
2008-5-25 20:29
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
谢谢了。。。。。。。。。
2008-5-26 13:47
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
大牛会在DELPHI开发史上留下一笔
2008-6-7 13:52
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
把它拷贝到KmdKit的beeper目录中,用它的SCP文件加载
这里如何测试。。。哪儿下KMDKIT 我搜索了一个发现里面无BEEPER目录。也无SCP。EXE
请说明白些。。
2008-7-7 19:56
0
雪    币: 357
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
终于看到有DELPHI写的了,顶。。。。。。。。。。。。。。。
2008-7-8 12:14
0
雪    币: 3
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
C:\KmdKit4DRls>dcc32 -Uinclude -B -CG -JP -$A-,C-,D-,G-,H-,I-,L-,P-,V-,W+,Y- beeper.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
beeper.pas(5) Fatal: File not found: 'D:\Borland\Delphi7\lib\Obj\nt_status.pas'

为什么出这个错。把nt_status.dcu复制到D:\Borland\Delphi7\lib\Obj\下面去了还是这样。
2008-7-12 21:02
0
雪    币: 435
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
哇哈哈,强烈支持楼主,希望楼主早日把KmdKit4D(Kernel Mode Driver Kit for Delphi)放出来,偶等不及啦^_^
2008-7-12 23:16
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
因为M的这个dcu是D2007的, 而你的DCC32.exe应该是D7的
2008-8-4 22:27
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
挖坟好像不太好, 但是哪里有D7能用的nt_status单元呢?
2008-8-4 22:30
0
雪    币: 1004
活跃值: (75)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
45
我的KmdKit4D里有nt_status的源码,你用D7编译一下就可以了,在source目录里
2008-8-5 12:09
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
^o^, 谢谢, 已编译通过.
2008-8-5 15:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
F:\downlong\qudong\KmdKit4D003\KmdKit4DRls\samples\beeper>make
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
        dcc32 -U\mickeylan\KmdKit4D\include -B -CG -JP -$A-,C-,D-,G-,H-,I-,L-,P-
,V-,W+,Y- -O+ beeper.pas
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
beeper.pas(1) Fatal: File not found: 'System.pas'

** error 1 ** deleting beeper.obj

我也出现了这个错误,我也把System.pas复制到了lib文件下还是不行,请问怎么解决呢?
2008-9-18 11:41
0
雪    币: 1004
活跃值: (75)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
48
不是复制system.pas,是复制system.dcu
2008-9-18 16:49
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
以前我一直关注Delphi的驱动开发,但一直没有去实践,在楼主这篇文章的鼓动下我试了一下,感觉楼主解决了以下问题:
一、因为需要用支持内核模式的连接器MS的Link,所以楼主解决了与Delphi符号兼容的库问题。
二、为了完成例子定义了部分数据结构。

我认为最重要的是那些库(*.lib)文件,虽然数据结构不全面但大家可以参考和翻译XPDDK中的有关文件或者Windows源代码或者开源的类Windows系统ReactOS。

为了学习、我正在尝试把filedisk转换为Delphi的,Mount部分已经完成,变成了窗口界面的了,现在正在做驱动部分。现在的主要问题是,C++的记录类型转到delphi时有个数据字段对齐的问题我拿不准,还有就是位字段的定义(如:xxx:6)不好搞。
另外、C++的结构到Delphi是不是都该用Packed的record呢,在C++和Delphi中sizeof同一个结构时、有的情况需要packed有的情况不能用否则就不一样大,很伤脑筋。另外我认为到Delphi中这样定义C++的变体是不是好一些,不分散:

xxx = packed record
x1 : word;
x2 : word;
  x3 : packed record
          case Byte of
           0 : (xx : dword);
           1 : (y1 : word; y2: word);
         end;
  x4 : word;
   x5 : packed record
           case Byte of
            0 : (...);
            1 : (...);
         end;
   x6: word;
   x7: byte;
  .
   .
   .
end;
2008-10-22 16:30
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
这是我这几天写的Delphi版filedisk驱动,还有不少问题,现在的情况是FileDiskDeleteDevice被调用时蓝屏,而其他部分的代码还没有开始调试。我在开发其他项目,时间比较少,所以发到这里与大家共同研究
上传的附件:
2008-10-22 20:27
0
游客
登录 | 注册 方可回帖
返回
//