日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

WINDOWS XP下驱动开发环境设置(DDK+VC6.0)

發(fā)布時間:2023/12/14 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WINDOWS XP下驱动开发环境设置(DDK+VC6.0) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

通常驅(qū)動程序的調(diào)試都是用ddk在cmd中完成的。這部分我暫時略過。下面先介紹如何設(shè)置vc++6.0在Visual Studio 6.0集成環(huán)境中開發(fā)設(shè)備驅(qū)動程序的方法。

在Windows上,Windows DDK提供的開發(fā)環(huán)境是基于命令行的,操作起來極為不便,而Visual Studio 6.0給我們提供了非常友好易用的集成環(huán)境,讓我們有如虎添翼之感。
  那么,能否利用Visual Studio的集成環(huán)境來開發(fā)驅(qū)動程序呢?答案是可以的。通過對Visual Studio集成環(huán)境的簡單設(shè)置,創(chuàng)建好自己的驅(qū)動開發(fā)集成環(huán)境就可以了。

1,

第一:安裝Vc++6.0,我裝的是英文版,中文版應(yīng)該也可以,不過我沒試。

第二:安裝winXP DDK,注意,安裝目錄中間不能有空格,比如D:\Program Files不行,

我直接裝在了D盤,裝完后設(shè)置環(huán)境變量DDKROOT為安裝目錄D:\WINDDK\2505。

2,創(chuàng)建一個目錄,作為開發(fā)目錄,我是利用<<PCI設(shè)備開發(fā)寶典>>的光盤中的工程文件PCI9052Demo,直接考到E盤,所以,工作目錄下是E:\PCI9052Demo

3,工作目錄下創(chuàng)建一個批處理文件MakeDrvr.bat,內(nèi)容如下:

@echo off
if “%1""" goto usage
if "%3"”" goto usage
if not exist %1\bin\setenv.bat goto usage
call %1\bin\setenv %1 %4
%2
cd %3
build -b -w %5 %6 %7 %8 %9
goto exit

:usage
echo usage MakeDrvr DDK_dir Driver_Drive Driver_Dir free/checked [build_options]
echo eg MakeDrvr %%DDKROOT%% F: %%WDMWorkshop%% free -cef
:exit

解釋以下:

1% 是DDK_dir,也就是ddk的安裝目錄

2% 是Driver_Drive,是你工作目錄所在的盤符,這里是E:

3% 是Driver_Dir,是你工作目錄的路徑,這里是E:\PCI9052Demo

4% 是編譯模式,checked表示調(diào)試模式,free表示發(fā)行模式,這里是出問題的地方,后面再說。

該批處理首先對傳遞的參數(shù)作一些檢查,然后調(diào)用ddk的setenv命令設(shè)置環(huán)境變量,然后改變目錄為源程序所在驅(qū)動器和目錄,并最后調(diào)用build,-b保證顯示完全的錯誤信息,-w保證在屏幕上輸出警告,在vc ide里的output窗口中可以看到這些錯誤和警告。

4,建立一個空白工程
 選File的new菜單項,然后選project欄的makefile,然后輸入路徑,一路next下去即可,visual studio提供兩種配置win32 debug和win32 release. 按照cant的《windows wdm 設(shè)備驅(qū)動程序開發(fā)指南》方法,可以刪除掉,添加Win32 Checked和 Win32 Free

5,VC的Project->settings里面改變設(shè)置

修改這兩種配置

Free

build command line:
e:\PCI9052Demo\MakeDrvr %DDKROOT% e: e:\PCI9052Demo free

rebuild all opinions:
-nmake /a

output filename:
PCI9052Demo.sys

browse info file name:
objfre\i386\PCI9052Demo.bsc

=============================================================
Checked

build command line:
e:\PCI9052Demo\MakeDrvr %DDKROOT% e: e:\PCI9052Demo checked

rebuild all opinions:
-nmake /a

output filename:
PCI9052Demo.sys

browse info file name:
objfre\i386\PCI9052Demo.bsc

6.添加源文件到工程
  可以新建,也可以添加,這和普通的win32開發(fā)一樣。

7.添加資源文件
  選INSERT的RESOURCE菜單項即可

8.把文件makefile放入源程序目錄,其內(nèi)容總是

DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source

file to this component. This file merely indirects to the real make file

that is shared by all the driver components of the Windows NT DDK

!INCLUDE $(NTMAKEENV)\makefile.def

9.把文件Sources放入源程序目錄,內(nèi)容為
  TARGETNAME=RamDrive//這是要生成的驅(qū)動程序.sys文件的名字
  TARGETPATH=obj //.sys文件所在目錄的上層目錄,(由于ddk的bug)應(yīng)手工在obj目錄下創(chuàng)建checked和free目錄,以作為.sys的最終存放目錄
  TARGETTYPE=DRIVER //驅(qū)動程序的類型,一般不變
  INCLUDES=$(BASEDIR)\inc //ddk包含文件路徑,一般不變
  SOURCES=RamDrive.cpp RamDrive.rc //源文件(不要頭文件),資源文件
  BROWSER_INFO = 1 //若想要瀏覽信息,則要有本行;否則可無

這樣設(shè)置完之后,按編譯會出現(xiàn)錯誤的,錯誤如下:

usage: setenv [fre|chk] [64] [hal]
Example: setenv d:\ddk chk set checked environment
Example: setenv d:\ddk set free environment (default)
Example: setenv d:\ddk fre 64 sets 64 bit free environment
Example: setenv d:\ddk hal sets free hal environment
Example: setenv d:\ddk fre hal Same
‘build’ 不是內(nèi)部或外部命令,也不是可運行的程序
或批處理文件。

PCI9052Demo.sys - 0 error(s), 0 warning(s)

問題出在什么地方呢?關(guān)鍵在于XP的DDK的編譯模式已經(jīng)不再是free和checked了,而是上面的fre和chk,另外還加了fre 64,hal, fre hal。

解決辦法就是:VC的Project->settings里面設(shè)置的編譯模式改成fre和chk,然后,輸出就正常了,

--------------------Configuration: PCI9052Demo - Win32 fre--------------------
BUILD: Object root set to: ==> objfre
BUILD: Adding /Y to COPYCMD so xcopy ops won’t hang.
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Loading D:\WINDDK\2505\build.dat…
BUILD: Computing Include file dependencies:
BUILD: e:\pci9052demo\sources. unexpected in directory with DIRS file
BUILD: Ignoring e:\pci9052demo\sources.
BUILD: pci9052demo found in dirs., is not a subdirectory of e:\pci9052demo
BUILD: Examining e:\pci9052demo directory tree for files to compile.
e:\pci9052demo
BUILD: Linking e:\pci9052demo directory
BUILD: Done

PCI9052Demo.sys - 0 error(s), 0 warning(s)

總結(jié)

以上是生活随笔為你收集整理的WINDOWS XP下驱动开发环境设置(DDK+VC6.0)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。