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

以下方法是从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文件,您可以替换成您的工程符号后就可以编译了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值