Tomgin
驱动牛犊
驱动牛犊
  • 注册日期2001-08-08
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2001-08-29 09:46
不知道,你的错误提示是什么。所以不太好回答。
我说说关于编译环境的问题。

由于我编写过一些dos 程序,和 unix 的程序,
所以对命令行,编译有点了解。

我记得从 bc31 开始编写程序,就不需要使用 make 文件
和命令行编译,而是使用集成开发环境,你只需要简单的
选几下就可以编译程序。导致大部分程序员对,编译环境
不太了解,其实一般的应用程序也不需要了解。

而微软在提供 驱动程序编程的时候提供的库文件,和头文件
与 sdk 不一样。由于当前的主流开发工具都是使用sdk
的库文件和头文件,所以他们的却省配置都不能编译驱动程序。

由于上述原因导致,许多程序员开始开发驱动程序的时候,觉得
很麻烦,很困难。

只要大家知道编译程序的原理,和灵活的运用他,那么编译驱动程序
其实,很简单。

其实编写驱动程序的关键是需要大家对编写 windows 下的 批处理文件
或 nuix 的 shell 脚本的编写 有一定的了解。

在编译一个程序的时候,需要的东西是:

1、编译程序,连接程序...等可执行文件。    
   需要程序员设置路径,让你能访问所有的可执行文件。
   有时驱动程序需要sdk 的原因是,需要sdk中的资源编译程序。
   但是在 ddk 中有时也包含这个程序。不过你需要设置一下路径
   在98 下是 c:\98ddk\bin\win98。所以一般情况下编写驱动程序
   不需要sdk 。
   我没有使用过 nt4 的ddk 所以对 他的是否需要sdk 不太清楚。
   据说 nt4 ddk 在设置编译环境的时候,以读注册表来判断sdk
   是否存在。来确定需要的sdk 可执行文件是否存在。而能否编译
   驱动程序。请高手确定。
  
2、各种头文件,库文件
   同样需要设置路径,使你的编译程序能够找到他。
  
只要满足上述两个条件,就因该能顺利的编译一个驱动程序。

例子:在 vc 下编译驱动程序。

1、ddk, vc 安装完毕。

2、在 vc 的 options -- Directories
   include files -- 中添加你的 ddk 中的 inc 目录,和他下面的所有子目录。
   library files -- 中添加你的 ddk 中的 lib(98), libfre(nt/2k), libch(nt/2k)
                    和他下面的所有子目录。
   executable files -- 中添加你的 ddk 中的 bin 目录,和他下面的所有子目录。
  
3、创建一个 makefile 的工程。把你的所有程序添加进去。
包括编译你的驱动程序的 makefile 文件

   在 project setting (alt+f7) 中
   General -- build command line 中 输入 mk.bat(98), mk.cmd(nt/2k)
   General -- output file name 中 输入 可以带路径的 驱动程序名字。
  
   编译 vxd :  的  mk.bat
  
@echo off
echo Author      :  Qian
echo Create Data :  2000.7.1
echo Function    :  start ddk environment and build vxd file
echo on

rem 调用 ddk 的初始化环境的 批处理文件
call c:\98ddk\bin\setenv.bat c:\98ddk checked

rem 转到你的驱动程序目录
d:
cd \work\qian\vxd

rem 编译驱动程序
build -b -w -nmake /a


   编译 vxd :  的  mk.cmd
  
@echo off
echo Author      :  Qian
echo Create Data :  2001.8.7
echo Function    :  start ddk environment and build Wdm file
echo on

rem 调用 ddk 的初始化环境的 批处理文件
call c:\NTDDK\bin\setenv.bat c:\NTDDK checked

rem 转到你的驱动程序目录
d:
cd \Work\Qian\Wdm\test

rem 编译驱动程序
build -b -w -nmake /a
    
    
按 f7 便可以生成驱动程序了。

我觉得还是没说太明白,如有疑问,
来 mail: Asm386@sina.com or Asm386@sohu.com  
  
努力呀,还有许多东西不会呢。
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2001-08-29 18:40
[QUOTE]原本由  发表
[B]连基本编程环境,自己都配置不好,还想学编写驱动程序?

配置这些东西,应该不需要别人指导。
如果不是请考虑改行用 vb 或 delphi 编写应用程序吧。

真的,不是什么人都可以,编写驱动程序的。 [/B][/QUOTE]

这位"  "仁兄为何连姓名和出生日期都不敢留,不敢想象他怎么能有诚意和大家交流。
Tomgin
驱动牛犊
驱动牛犊
  • 注册日期2001-08-08
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2001-08-29 22:40
水平很高嘛。
看样子,是一个一直由鲜花和掌声围绕的人。受不得一点挫折。
别人的一点严厉的忠告,就这么大火气。
不过,不会因为你了说什么,驱动程序的编写就变成
像 vb,delphi 那样拖几个控件,使用 vc 向导就能做出来。

我还是重申我的观点:
  驱动程序的编写是很困难的,是有一定技术含量的。
  不是任何程序员都能做的。
  如果一些小问题自己不能独立解决,还有后面的大问题怎么办。
努力呀,还有许多东西不会呢。
pengyc
驱动牛犊
驱动牛犊
  • 注册日期2001-07-16
  • 最后登录2010-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2001-09-05 22:15
vxd123,你现在可满意了?这么多人回你的帖子 ……
上一页 下一页
游客

返回顶部