命令行编译和VC6.0编译驱动程序的方法

VC6.0下直接用DDK编译驱动程序的方法  csdn里只有提问和回答,个人觉得只有这个还不够,还需要人来分享知识,所以今天为了推广自己写的一个VC6小插件,顺便分享一下用VC6直接编译驱动程序的心得给需要的人。全文如下: 《VC6编译驱动的方法(含32和64位)》 ======文章开始,转载请注明:潘氏软件 - http://panshisoft.cn/dirchanger.asp ======= VC6只是一个IDE,可以方便的调用编译 阅读详情
 

编译驱动程序分两个步骤,

1、设置编译环境

2、进行实际编译过程

还有一个前提条件就是要安装ddk

1、运行ddk目录下的setenv.bat,该命令最少有两个输入参数,一个是ddk的安装路径,一个是要求的编译结果。在不知道该如果输入参数的时候,可以不用任何参数,直接输入setenv.bat命令,它会提示你如何输入。比如输入setenv d:\ddk free WXP就表示,你的ddk安装在d:\ddk这个路径下,编译结果是一个不带调试信息的WXP驱动

2、运行bin\x86目录下的build.exe进行实际编译过程。在你的应用程序目录下,直接运行带路径的build命令(带路径的目的是不和vc的命令冲突)。就可以完成编译过程。

也可以在修改vc的编译环境,直接编译。修改的方法如下:

在Visual Studio 6.0集成环境中开发设备驱动程序的方法

  在Windows上,Windows DDK提供的开发环境是基于命令行的,操作起来极为不便,相信进行过驱动程序开发的朋友一定对此深恶痛绝。另一方面,Visual Studio 6.0却给我们提供了非常友好易用的集成环境,让我们有如虎添翼之感。
  那么,能否利用Visual Studio的集成环境来开发驱动程序呢?笔者经过多方探索,并结合自己开发驱动的经验,摸索出了一套实用的方法,通过对Visual Studio集成环境的简单设置,创建了自己的驱动开发集成环境了。  下面笔者的一些经验奉献出来与大家共享,如有不当,欢迎指正。

0.系统要求已安装
  DDK
  Visual C++6.0(安装时选上所有工具)

1.改造ddk\bin\setenv.bat
  把要求mstools的有关语句注释掉(若想在命令行环境开发驱动则还需加入call VC_DIR\VC98\Bin\Vcvars32. bat),以便能在命令行使用vc的相关工具;若只想在IDE环境开发就不必调用Vcvars32.bat,因为相关工具的路径信息可以在vc环境中设置.)

2.创建一个目录DriverEnv(目录名随意),作为你开发驱动的大本营

3.在该目录下创建一个批处理文件MakeDrvr.bat,内容如下:
@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%% C: %%WDMBOOK%% free -cef
:exit
  该批处理首先对传递的参数作一些检查,然后调用ddk的setenv命令设置环境变量,然后改变目录为源程序所
在驱动器和目录,并最后调用build,-b保证显示完全的错误信息,-w保证在屏幕上输出警告,在vc ide里的output窗口中可以看到这些错误和警告。

4.建立一个空白工程
  选File的new菜单项,然后选project栏的makefile,然后输入路径,一路next下去即可,visual studio提供两种配置win32 debug和win32 release.

5.修改这两种配置
  选project的settings菜单项win32 debug:
  在Build Command Line一栏填入MakeDrvr DDK_DIR SOURCE_DRIVE SOURCE_DIR checked [build options]
  在Rebuild all options一栏填入 -nmake /a
  在output file一栏填入与sources文件中的TARGETNAME相同的文件名
  在Browse info file name一栏填入obj\i386\checked\(与TARGETNAME相同的文件名,见下述).bsc

  win32 release:
  在Build Command Line一栏填入MakeDrvr DDK_DIR SOURCE_DRIVE SOURCE_DIR free [build options]
  在Rebuild all options一栏填入 -nmake /a
  在output file一栏填入与sources文件中的TARGETNAME相同的文件名
  在Browse info file name一栏填入obj\i386\free\(与TARGETNAME相同的文件名).bsc
  注:DDK_DIR一般可以写成%BASEDIR%,build options一般为-cef即已足够

6.添加源文件到工程
  可以新建,也可以添加,这和普通的win32开发一样。

7.添加资源文件
  选INSERT的RESOURCE菜单项即可

8.把文件makefile放入源程序目录,其内容总是
#
# 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放入源程序目录,内容为
  TARGETNAME=RamDrive//这是要生成的驱动程序.sys文件的名字
  TARGETPATH=obj //.sys文件所在目录的上层目录,(由于ddk的bug)应手工在obj目录下创建checked和free目录,以作为.sys的最终存放目录
  TARGETTYPE=DRIVER //驱动程序的类型,一般不变
  INCLUDES=$(BASEDIR)\inc //ddk包含文件路径,一般不变
  SOURCES=RamDrive.cpp RamDrive.rc //源文件(不要头文件),资源文件
  BROWSER_INFO = 1 //若想要浏览信息,则要有本行;否则可无

10.因为MakeDrvr.bat在DriverEnv目录,所以应把该目录添加到vc的Executable files里面
  选tools的options菜单项,然后选directories页,在show directories for一栏选择Executable files,然后添加即可.

  至此,环境设置完毕,你可以按F7, build你的驱动程序了。   

用VC6.0编译Windows驱动程序 <br />      从广义角度来讲,只要某种语言的编译器能编译出PE格式的二进制文件,并能正确指明驱动程序的入口地址,那么这种语言就能用作开发Windows驱动,所以我们可以选择C、C++、汇编,甚至是Delphi。编译Windows驱动的编译器也有很多,虽然Microsoft发布了新的WDK,但它足足有600我M啊,相比之下,我们还是比较钟意小巧的VC6.0,下面我们就一步一步把VC打造成Windows驱动编写IDE。 <br />1.修改编译选项<br />"工程"菜单"设置"选项中"C/C++" 阅读详情

相关推荐

VC6下DDK开发环境配置与驱动程序开发指南

简介:在VC6中配置DDK开发环境是编写和调试Windows设备驱动程序的基础。DDK包含了创建Windows内核模式驱动所需的工具和库。本文详细介绍了如何下载安装合适的DDK版本,将DDK路径添加到VC6配置中,创建驱动程序项目模板,并使用DDK的API和工具进行编译与调试。掌握这些步骤对于深入了解Windows内核编程,以及开发稳定、高效的设备驱动程序至关重要。

weixin_30674431的博客 735

VC6.0命令行编译

VC6.0命令行编译及使用makefile编译的方法 VC6是挺经典的一个IDE,但有时编译比较慢。作为一个典型的程序员,我总想让电脑多做点事,自己少点事。编译软件也一样,又是能够执行后不管了,让程序自己慢慢编译,人可以做其他事情,或者直接写成批处理,自动的一个个慢慢执行编译就好了。所以一直想探索一下vc6环境怎么使用命令行编译,以及vc6怎么使用makefile编译。 今天终于找到办

agoago_2009的专栏 3037

使用vc6.0编写编译驱动超简单的方法,极力推荐使用,不看你会失望的

使用vc6.0编写编译驱动超简单的方法,极力推荐使用 不看不知道 ,看了保证你不失望。搞驱动开发的简单方法。 希望你喜欢。

VC6的命令行自动编译

Building a Project from the Command Line Visual Studio 6.0 You can build a Visual C++ project from the command line without firs

songxu1的专栏 1033

VC6.0编译驱动时的配置

本文讲述了VC6.0编译驱动时的配置,DDK驱动的加载!WDM驱动加载。

ASME B31.3-2024工艺管道标准介绍

ASME B31.3-2024《过程管道》是ASME发布的最新版工业管道标准,适用于石油、化工、制药等行业的管道系统设计、建造和维护。该版标准进行了多项重要更新,包括软管管理、应力指数调整、新增管件类型、焊接检查和泄漏测试等条款修订,并新增了书面报告要求。标准共594页,为全球过程工业提供管道安全规范,对保障管道系统完整性、可靠性具有重要意义,被多国强制采用或推荐使用。

TXNMG的博客 4702

如何编译驱动程序

<br />如何编译驱动程序 [转贴 2008-07-30 11:29:26]    字号:大 中 小驱动的编译和上层应用程序的编译完全不同,作为初学者应该先了解一下,即使你还不懂得怎么写驱动程序。 <br />       首先安装DDK,然后随便找一个例子来测试。在菜单中找到BUILD环境菜单执行,不同的系统要使用不同的BUILD环境。会打开一个DOS窗口,这时CD到那个例子程序,输入 build –cZ回车就可以了。 驱动程序都是用一个由DDK提供的叫build.exe的工具编译的。此程序以一个名为

迷茫的小莱 1047

零中频接收机实战:DC Offset的5种常见解决方案与调试技巧

本文针对零中频接收机中DC Offset这一核心挑战,深入剖析了其产生机理与对信号解调的严重影响。文章从实战角度出发,系统性地介绍了五种解决方案,包括硬件预防、数字域校正、I/Q不平衡联合校正等,并分享了关键的实验室调试与产线测试技巧,旨在帮助射频工程师有效提升接收机性能。

weixin_29234509的博客 399

用命令行编译Windows程序

基本设置:1. 解压vc71.zip到c:/2. 在vc71目录中建立两个新的.bat文件:clean.bat --->SET MSVCDir=c:/vc71SET VC_TOOL_PATH=%MSVCDir%/binSET PATH=%VC_TOOL_PATH%;%PATH%SET INCLUDE=%MSVCDir%/INCLUDE;%MSVCDir%/win32/Include;%MS

Libo专栏 3213

岭回归的MATLAB步骤

MATLAB 实现框架,它涵盖了从数据导入到岭回归的步骤,包括计算共线性、使用 MAE、MSE、R²、MAPE 进行评价,以及绘制相应的可视化图表。

subject625Ruben的博客 1090

【YOLO】Mask Proto分支理解

Mask Proto分支通过解耦全局原型与实例参数,在保持YOLO实时性的同时实现精准分割。其技术核心在于利用多尺度特征生成可组合的原型,结合动态系数适应不同目标形态。未来可进一步融合Transformer的注意力机制,增强对复杂场景的建模能力。

浩瀚之水的专栏 476

VC6.0中常见的条件编译命令(#ifdef ... #else ... #endif)---指示编译器谁该参与编译

VC6.0中常见的条件编译命令(#ifdef ... #else ... #endif)---指示编译器谁该参与编译编程时常见的应用点(1):防止头文件被重复编译#ifndef _LS_DLLAPI_INCLUDE_#define _LS_DLLAPI_INCLUDE_//……#endif 应用点(2): 常见应用格式#ifndef / #if

PerfectToday的专栏 1595

王者荣耀AI绝悟如何选英雄?

王者荣耀AI绝悟如何选英雄? 【抢射手?抢中单位?「绝悟」在打王者荣耀时是如何选英雄的?】 腾讯 AI Lab 开发的 AI 智能体「绝悟」已让王者峡谷不再只是人类召唤师的竞技场,而且这个 AI 战队在上月底进化成了「完全体」。在一局完整的比赛中,英雄选择阶段是至关重要的(比如五射手或五法师阵容会有官方劝退)。 近日,腾讯 AI Lab 和上海交通大学发布的一篇论文介绍了绝悟的英雄选择策略:Ju...

不断学习,不断进步,提高自己 1万+

用VC6.0编译驱动程序的工程设置方法

用VC6.0编译驱动程序的工程设置方法  VC6.0编译驱动程序的工程设置一、编译NT式驱动1>     建立一个win32应用程序工程。2>     修改工程属性。Project --Setting-C/C++中的Project Options内容替换成/nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WI

Iqian1314的专栏 1619

汽车ECU诊断刷写和OTA升级中的验签和校验

汽车ECU诊断刷写和OTA升级中的验签和校验

天赐好车的博客 617

Android16 动态隐藏systemUI右侧音量条

本文介绍了如何屏蔽SystemUI系统音量条并显示自定义音量控制条的实现方法。主要通过两个步骤:1)在编译脚本中定义控制属性persist.rp.show.volume.dialog=off来隐藏系统音量条;2)修改SystemUI源码中的VolumeDialogImpl.java文件,在showH方法中根据属性值判断是否显示系统音量条。当属性值为off时直接return,从而屏蔽系统音量条的显示,实现自定义音量控制条的替代显示。该方法通过系统属性控制显示状态,具有灵活可控的特点。

tzj1058756809的博客 779

VC 6.0下直接用DDK编译驱动程序的方法

VC 6.0下直接用DDK编译驱动程序的方法作者: 佚名,  出处:IT专家网论坛, 责任编辑: 谢妍妍, 2009-07-13 07:00   VC6只是一个IDE,可以方便的调用编译器,链接器,头文件,库文件,如果编辑和编译驱动能集成在一起,这样可以提高开发效率。  VC6只

qingruo_yin的专栏 1021

计算机视觉安防监控升级:人脸识别与行为异常检测

计算机视觉安防监控升级:人脸识别与行为异常检测 ,人工智能,计算机视觉,大模型,AI,本文将深入探讨人脸识别与行为异常检测技术在安防监控中的应用,包括技术原理、算法实现、应用场景以及面临的挑战与解决方案。通过实际案例和代码示例,帮助读者更好地理解和掌握这些技术,为推动安防监控系统的智能化升级提供参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 23万+

VC6编译驱动的方法(含32和64位)

VC6只是一个IDE,可以方便的调用编译器,链接器,头文件,库文件,如果编辑和编译驱动能集成在一起,这样可以提高开发效率。 对于普通的Win32应用程序,VC6已经默认支持了,而对于驱动程序没有设定好的工程向导。其实驱动程序也就是一个sys,是通过c语言写成,所以编译它理论上没有问题,只是在实际操作上有点麻烦。 下面就来说明一下各种平台编译sys驱动的方法(包括64位平台) 

snlying的专栏 1388

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VC6+WDK+DriverStudio编译Windows驱动程序环境搭建

   自己终于把这个环境搭起来了,费了九牛二虎之力,走了很多的弯路。大家分享吧,不要嫌麻烦这差不多是最简单了。一、需要的软件及版本Vc6 英文版;(随处都有)WDK3790.1830(1830_usa_ddk.iso的解压文件)或者2006.1106版本;(http://download.microsoft.com/download/9/0/f/90f019ac-8243-48

Summon的专栏 4511

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC6.0+ddk+DriverStudio3.2安装与配置

再学习VS2013+wdk之前。首先学习VC6.0+ddk+DriverStudio3.2环境下的驱动开发,来理解驱动的世界。 完全新手,从零开始,亚历山大,且行且珍惜。。。。。 首先是:环境的搭建 安装和配置 一. 软件的安装顺序:Windows XP(虚拟机中) --> VC6.0 --> WinXP_DDK -> DriverStudio3.2,

和而不流 7301

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

用VC6.0集成环境快速开发VxD

                                                    作者/马飞涛VxD (Virtual Device Driver), 即虚拟设备驱动程序, 是运行在处理器Ring0特权级别的驱动程序,可以执行任何处理器指令,访问机器中的任何数据寄存器。VxD被用作Windows 9x系统和物理设备之间的接口,扩展了WINDOWS 系统的核心服务,能够访问

曾登高 3430
上一篇: How_To_Build_The_First_SYS
下一篇: Using the SetEnv.bat Command Line
embededvc
博客等级 码龄21年 176粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值