fengyu_1907
驱动牛犊
驱动牛犊
  • 注册日期2003-04-16
  • 最后登录2008-06-05
  • 粉丝0
  • 关注0
  • 积分137分
  • 威望15点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:3120回复:0

如何使用VC6的工具完成DDK和SDK工程

楼主#
更多 发布于:2005-08-08 13:10
  以下方法是从DDK/SDK附带的源程序中总结而来,与各位朋友分享,希望能对您有点帮助。

开发工具和资源:visual c++6.0, windows server2003 SDK SP1,windows server2003 DDK SP1,DbgView

目标:在VC开发环境中使用SDK/DDK提供的编译环境来编译调试DLL/EXE/SYS(32bit/64bit)工程.

步骤:
         1.安装顺序:VC6,SDK,DDK
         2.新建一个系统环境变量:DDKROOT=C:\WINDDK\DDK2003(你的DDK安装路径,应与"开始\程序\Developmet Kits\...\"中的编译命令属性设置一致),重起系统
         3.注释%DDKROOT%\bin\setenv.bat文件中的第269行,防止在VC调用它时改变当前路径.
         4.创建buildsdk.bat和buildddk.bat分别设置SDK和DDK的编译环境,以下为sdk在VC中配置编译方法:
               4.1操作VC菜单:[build]\[Configurations],添加以下六项:
                       Win32_Debug
                       Win32_Release
                       x64_Debug
                       x64_Release
                       ia64_Debug
                       ia64_Release
                       删除原来的Debug,Release项
                4.2 操作VC菜单:[Project]\[Settings],点击[General]标签,设置以上六项目的编译命令
                       Settings for              Build command line                Rebuild all options
                       --------------------------------------------------------------------
                       Win32 Win32_Debug:        buildsdk.bat w2k chk       /a
                       Win32 Win32_Release       buildsdk.bat w2k fre         /a
                       Win32 x64_Debug              buildsdk.bat chk AMD64        /a
                       Win32 x64_Release       buildsdk.bat fre AMD64        /a
                       Win32 ia64_Debug       buildsdk.bat chk 64           /a
                       Win32 ia64_Release       buildsdk.bat fre 64           /a
                *.bat的大致内容就是调用setenv.bat来设置编译环境的。大致如下:
                                 ......
                                REM Set Compiled Environment
                            call "%MSSDK%\SetEnv" %1 %2

                            echo Start to compiling and linking...
                            nmake      
                                 ......
                  DDK的配置也差不多。
       现在,您可以按下Rebuild/build/build all来编译链接您的工程了。在开发dll/exe程序时,可以设置断点来调试。在编译时,应该同时选择一个32/64的条件进行编译(如Win32 Win32_Debug/Win32 x64_Release),如果成功,其他版本也是成功的。在调试时,只要选择一个32bit条件进行调试,成功后其他版本也是成功的。

       个人要求: 熟悉makefile/sources的编写规则,如果不熟悉,也没关系,以下提供了一个sample作参考.
       编译器的选择说明请参考 (http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/vcrefcompileroptionslistedalphabetically.asp)
       链接器的选择说明请参考(http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/_core_linker_reference.asp)
...............
附件是sample
说明:
    xdk.dsw: 工作区,作用来管理myddk/mysdk/mydll,您应该双击xdk.dsw来打开sample;
    buildsdk.bat: 用来编译SDK工程(编译的32/64bit目标),可以在VC的[Project]\[Settings]中看到对它的调用(当前工程是mydll/mysdk时);
    buildsdkall.bat: 用来编译SDK工程(一次性完成编译所有的ASCII/UNICODE的32/64bit目标),可以在VC的[Project]\[Settings]中的[Win32 All]看到对它的调用(当前工程是mydll/mysdk时);
    buildddk.bat: 用来编译DDK工程(编译的32/64bit目标),可以在VC的[Project]\[Settings]中看到对它的调用(当前工程是myddk时);
    buildddkall.bat: 用来编译DDK工程(一次性完成编译所有的32/64bit目标),可以在VC的[Project]\[Settings]中的[Win32 All]看到对它的调用(当前工程是mydll/mysdk时);
    buildall.exe:buildsdkall.bat/buildddkall.bat调用该程序进行异步编译(因为不能保证同步编译时编译环境的改变).在buildsdkall.bat中,能发现以下方法:
                                       REM set CALL_METHOD=call
                                       set CALL_METHOD=..\buildall.exe
                    可以把它改成:
                                       set CALL_METHOD=call
                                       REM set CALL_METHOD=..\buildall.exe
                    看看有什么变化
     proj_dir.mak: 定义了目标文件的输出路径
                                      OUTDIR_LIB = ..\lib
                                      OUTDIR_EXE = ..\tar
                                      OUTDIR =
                    dll/exe/sys的目标路径是.\tar;lib的目标路径是.\lib. 如果其子文件夹后缀为_u,表明是UNICODE目标.
     ddk.txt: 这是份对DDK工程中sources文件的说明书,可以使用DDK编译和链接工具来编译成sys/dll/exe目标.
     xdk.rar 是sample的导出模板,它不包括.cpp/.c/.h文件,您可以替换成您的工程符号后就可以编译了。

由于篇幅的限制,还有些地方没能解释清楚,如果您感兴趣,可以与我联系:brike.huang@163.com;QQ24558102
附件名称/大小 下载次数 最后更新
sample.rar (90KB)  438

最新喜欢:

hawk.jianghawk.j...
游客

返回顶部