lyndll
驱动牛犊
驱动牛犊
  • 注册日期2009-02-14
  • 最后登录2010-05-04
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:8375回复:9

vs2005 “快速” 配置 开发 环境 无需--ddkwizard

楼主#
更多 发布于:2009-05-23 17:49
上次 发表了关于《VS2005驱动开发的环境配置--无需ddkwizard》,我们如果不用ddkwizard,每次用vs2005 开发时 都要配置编译器 和 连接器 ,非常地 麻烦 和 耗时,效率非常低,既然如此,那么有没有,一种更加方便快捷的 方法呢,答案的 肯定的,当然 我们讨论是在 无需ddkwizard 的条件下,呵呵 少废话 ,开始吧!
假如我们上次已经使用vs2005 开发过 驱动程序,而且编译器、连接器 已经 一步步 配置过(配置时是不是特别崩溃)
这次我们新建一个工程,然后就是配置工程的环境了,这次我们不必再一步一步地配置。只要简单几步就 ok 了
一般我们新建一个驱动工程时,都是新建一个win32控制台空项目,假设我们这次新建一个 名叫“Mydirver”的空win32项目,在你保存工程的地方有一个Mydriver的文件夹,找到一个名为“Mydirver.vcproj”文件,这个其实是一个xml文件,用记事本打开:一般为以下格式,注意Configuration 节点 有两个此节点,一个是
debug]win32   一个 为  release|win32 呵呵 现在知道了吧 为什么有 两个 这样的 节点了吧 ------因为我们编译的时候 有 debug 版 和 release 版本,

<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
    ProjectType="Visual C++"
    Version="8.00"
    Name="Mydirver"
    ProjectGUID="{B2968338-09B7-43A6-9344-68E5D233FEC3}"
    RootNamespace="Mydirver"
    Keyword="Win32Proj"
    >
    <Platforms>
        <Platform
            Name="Win32"
        />
    </Platforms>
    <ToolFiles>
    </ToolFiles>
    <Configurations>
        <Configuration
            Name="Debug|Win32"
            OutputDirectory="$(SolutionDir)$(ConfigurationName)"
            IntermediateDirectory="$(ConfigurationName)"
            ConfigurationType="1"
            CharacterSet="1"
            >
            <Tool
                Name="VCPreBuildEventTool"
            />
            <Tool
                Name="VCCustomBuildTool"
            />
            <Tool
                Name="VCXMLDataGeneratorTool"
            />
            <Tool
                Name="VCWebServiceProxyGeneratorTool"
            />
            <Tool
                Name="VCMIDLTool"
            />
            <Tool
                Name="VCCLCompilerTool"
                Optimization="0"
                PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
                MinimalRebuild="true"
                BasicRuntimeChecks="3"
                RuntimeLibrary="3"
                UsePrecompiledHeader="0"
                WarningLevel="3"
                Detect64BitPortabilityProblems="true"
                DebugInformationFormat="4"
            />
            <Tool
                Name="VCManagedResourceCompilerTool"
            />
            <Tool
                Name="VCResourceCompilerTool"
            />
            <Tool
                Name="VCPreLinkEventTool"
            />
            <Tool
                Name="VCLinkerTool"
                LinkIncremental="2"
                GenerateDebugInformation="true"
                SubSystem="1"
                TargetMachine="1"
            />
            <Tool
                Name="VCALinkTool"
            />
            <Tool
                Name="VCManifestTool"
            />
            <Tool
                Name="VCXDCMakeTool"
            />
            <Tool
                Name="VCBscMakeTool"
            />
            <Tool
                Name="VCFxCopTool"
            />
            <Tool
                Name="VCAppVerifierTool"
            />
            <Tool
                Name="VCWebDeploymentTool"
            />
            <Tool
                Name="VCPostBuildEventTool"
            />
        </Configuration>
        <Configuration
            Name="Release|Win32"
            OutputDirectory="$(SolutionDir)$(ConfigurationName)"
            IntermediateDirectory="$(ConfigurationName)"
            ConfigurationType="1"
            CharacterSet="1"
            WholeProgramOptimization="1"
            >
            <Tool
                Name="VCPreBuildEventTool"
            />
            <Tool
                Name="VCCustomBuildTool"
            />
            <Tool
                Name="VCXMLDataGeneratorTool"
            />
            <Tool
                Name="VCWebServiceProxyGeneratorTool"
            />
            <Tool
                Name="VCMIDLTool"
            />
            <Tool
                Name="VCCLCompilerTool"
                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
                RuntimeLibrary="2"
                UsePrecompiledHeader="0"
                WarningLevel="3"
                Detect64BitPortabilityProblems="true"
                DebugInformationFormat="3"
            />
            <Tool
                Name="VCManagedResourceCompilerTool"
            />
            <Tool
                Name="VCResourceCompilerTool"
            />
            <Tool
                Name="VCPreLinkEventTool"
            />
            <Tool
                Name="VCLinkerTool"
                LinkIncremental="1"
                GenerateDebugInformation="true"
                SubSystem="1"
                OptimizeReferences="2"
                EnableCOMDATFolding="2"
                TargetMachine="1"
            />
            <Tool
                Name="VCALinkTool"
            />
            <Tool
                Name="VCManifestTool"
            />
            <Tool
                Name="VCXDCMakeTool"
            />
            <Tool
                Name="VCBscMakeTool"
            />
            <Tool
                Name="VCFxCopTool"
            />
            <Tool
                Name="VCAppVerifierTool"
            />
            <Tool
                Name="VCWebDeploymentTool"
            />
            <Tool
                Name="VCPostBuildEventTool"
            />
        </Configuration>
    </Configurations>
    <References>
    </References>
    <Files>
        <Filter
            Name="源文件"
            Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
            UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
            >
        </Filter>
        <Filter
            Name="头文件"
            Filter="h;hpp;hxx;hm;inl;inc;xsd"
            UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
            >
        </Filter>
        <Filter
            Name="资源文件"
            Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
            UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
            >
        </Filter>
    </Files>
    <Globals>
    </Globals>
</VisualStudioProject>

当我们配置我们的驱动开发环境事,只要增加一个Configuration 节点就可以了,那我们怎么配置这个节点呢?呵呵 ,上次做的驱动开发不是已经配置过了吗?呵呵只要 我们找到我们上次驱动开发的工程,假如此工程名为DriverDev.,同样找到此工程下的 DriverDev.vcproj文件 ,用记事本打开,我们会发现我们配置过得环境,比如我上次的配置环境为:
<Configuration
           Name="Driver Check Edtion|Win32"
            OutputDirectory=".\MyDriver_Check"
            IntermediateDirectory=".\MyDriver_Check"
            ConfigurationType="1"
            InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
            UseOfMFC="0"
            ATLMinimizesCRunTimeLibraryUsage="false"
            >
            <Tool
                Name="VCPreBuildEventTool"
            />
            <Tool
                Name="VCCustomBuildTool"
            />
            <Tool
                Name="VCXMLDataGeneratorTool"
            />
            <Tool
                Name="VCWebServiceProxyGeneratorTool"
            />
            <Tool
                Name="VCMIDLTool"
                PreprocessorDefinitions="NDEBUG"
                MkTypLibCompatible="true"
                SuppressStartupBanner="true"
                TargetEnvironment="1"
                TypeLibraryName=".\MyDriver_Check/DriverDev.tlb"
                HeaderFileName=""
            />
            <Tool
                Name="VCCLCompilerTool"
                Optimization="0"
                PreprocessorDefinitions="WIN32=100;_X86_=1;WINVER=0x501;DBG=1"
                RuntimeLibrary="1"
                PrecompiledHeaderFile=".\MyDriver_Check/DriverDev.pch"
                AssemblerListingLocation=".\MyDriver_Check/"
                ObjectFile=".\MyDriver_Check/"
                ProgramDataBaseFileName=".\MyDriver_Check/"
                WarningLevel="3"
                WarnAsError="true"
                SuppressStartupBanner="true"
                DebugInformationFormat="1"
                CallingConvention="2"
            />
            <Tool
                Name="VCManagedResourceCompilerTool"
            />
            <Tool
                Name="VCResourceCompilerTool"
                PreprocessorDefinitions="NDEBUG"
                Culture="2052"
            />
            <Tool
                Name="VCPreLinkEventTool"
            />
            <Tool
                Name="VCLinkerTool"
                AdditionalOptions="/DRIVER /subsystem:native /SECTION:INIT,D /IGNORE:4078  /IGNORE:4078 "
                AdditionalDependencies="ntoskrnl.lib"
                OutputFile="MyDriver_Check/HelloDDK.sys"
                LinkIncremental="1"
                SuppressStartupBanner="true"
                IgnoreAllDefaultLibraries="true"
                GenerateDebugInformation="true"
                ProgramDatabaseFile=".\MyDriver_Check/HelloDDK.pdb"
                GenerateMapFile="true"
                MapFileName=".\MyDriver_Check/HelloDDK.map"
                SubSystem="1"
                StackReserveSize="4194304"
                StackCommitSize="4096"
                EntryPointSymbol="DriverEntry"
                SetChecksum="true"
                BaseAddress="0x10000"
                TargetMachine="1"
            />
            <Tool
                Name="VCALinkTool"
            />
            <Tool
                Name="VCManifestTool"
            />
            <Tool
                Name="VCXDCMakeTool"
            />
            <Tool
                Name="VCBscMakeTool"
                SuppressStartupBanner="true"
                OutputFile=".\MyDriver_Check/DriverDev.bsc"
            />
            <Tool
                Name="VCFxCopTool"
            />
            <Tool
                Name="VCAppVerifierTool"
            />
            <Tool
                Name="VCWebDeploymentTool"
            />
            <Tool
                Name="VCPostBuildEventTool"
            />
        </Configuration>
把这个复制过去粘贴就ok了。vs 此时 会有一个 提示 ,我们点击从新加载 就可以啦,现在 打开 我们现在的工程 Mydirver 在工具栏选"项目“ ,选择Mydirver属性,在配置行 就有了”Driver Check Edtion“ 这项配置了,此时点击 ”配置管理器“  选择 ”新建“  在"名称“ 项 输入Driver Check Edtion 必须 是 Driver Check Edtion,两者要 一致。点击确定就可以了。

OK 我们的配置工程 到此 就 结束了。是不是轻松了许多,呵呵 希望 对 初学者有所帮助,如有错误 ,不吝指正!!!



 

最新喜欢:

swlilikeswlili...
lofrank
驱动牛犊
驱动牛犊
  • 注册日期2008-09-28
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望102点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-01 17:37
谢谢分享。

这样的话是不是每次新建工程还是得复制一下?

能否一次性设置好,让以后新建工程自动有Driver Check Edtion配置?谢谢
lyndll
驱动牛犊
驱动牛犊
  • 注册日期2009-02-14
  • 最后登录2010-05-04
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2009-06-01 23:49
这个 不行 因为 每个 工程文件 的 配置 文件 都是 独立 开的 而且 每个 工程 GUID 都是 不一样的
lofrank
驱动牛犊
驱动牛犊
  • 注册日期2008-09-28
  • 最后登录2010-04-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望102点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-06-02 20:01
引用第2楼lyndll于2009-06-01 23:49发表的  :
这个 不行 因为 每个 工程文件 的 配置 文件 都是 独立 开的 而且 每个 工程 GUID 都是 不一样的



恩,谢谢,这样已经算是目前最完美的解决方案了,谢谢
guenli
驱动牛犊
驱动牛犊
  • 注册日期2009-12-18
  • 最后登录2010-02-19
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望611点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-01-12 22:16
谢谢楼主的分享,这样做已经省了不少麻烦了!
ly1595
驱动牛犊
驱动牛犊
  • 注册日期2008-11-25
  • 最后登录2010-05-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-05-23 22:59
初学者来报个到!~~~
rhq2009
驱动牛犊
驱动牛犊
  • 注册日期2010-05-21
  • 最后登录2010-05-28
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2010-05-25 16:47
我们输入Driver Check Edtion   “

这里也可以用记事本打开.sln文件 修改第一节的golbal  添加一个   Driver Check Edtion|win32  =  Driver Check Edtion|win32  
也有同样的效果  
wsqwang884
驱动牛犊
驱动牛犊
  • 注册日期2009-11-26
  • 最后登录2010-06-03
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-06-03 17:21
我做的和楼主的差不多。就是自己建立一个工程,首先配置好,然后保存,这个工程里没有一个.c文件和.h文件。就相当于一个空工程。每次用的时候,自己复制过来,改一下链接的输出数据,就OK了。
hfz8867879
驱动牛犊
驱动牛犊
  • 注册日期2010-07-31
  • 最后登录2021-03-06
  • 粉丝0
  • 关注0
  • 积分286分
  • 威望321点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分4分
  • 社区居民
  • 忠实会员
8楼#
发布于:2010-08-31 15:03


我和您一样,哈哈哈~~待会儿也发个帖子把我的vs2010+WDK7600的模板发上来~
lichengyong
驱动牛犊
驱动牛犊
  • 注册日期2010-08-26
  • 最后登录2011-05-10
  • 粉丝0
  • 关注0
  • 积分39分
  • 威望391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2010-11-03 12:53
每次都要配置这些参数,真的好麻烦啊~尤其是对我们这些菜鸟,简直是折磨。因为有时配置好了编译就出问题。索性直接用ddk~
有没有一个简单的方法不要每次都去配置这些东西,能够在建立工程的时候的时候自己配置好呢?
大牛们应该有这个实力解决这问题的~
这倒霉孩子
游客

返回顶部