用VC6开发驱动的工程设置

用VC6开发驱动的工程设置

ID:41493122

大小:55.02 KB

页数:3页

时间:2019-08-26

用VC6开发驱动的工程设置_第1页
用VC6开发驱动的工程设置_第2页
用VC6开发驱动的工程设置_第3页
资源描述:

《用VC6开发驱动的工程设置》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用VC6开发驱动的工程设置2008-03-1716:091624人阅读评论(0)收藏举报这篇文章将说明如何设置VC6,使得可以编译驱动文件。1首先在vc6里面设置ddk的include和lib路径,要安装好一个ddk,以前安装好的也可以,只要ddk目录还在就可以了,这里假设ddk目录是F:/WINDDK那么该目录下还会有子目录,一般2660是xp的ddk,3790是win2003的sdk,随便用一种都无所谓。在vc6里面,Tools-->Option->Directoriers里面设置Include路径F:/WINDDK/3790/inc/wnetF:/WINDDK/

2、3790/INC/DDK/WNETLIB路径F:/WINDDK/379O/LIB/WNET/I386DDK的路径要放到最先这些设置好了,就可以开始下一步了。有时候,你还需要用到最新的SDK,那么请同样把sdk目录添加进去,sdk应该在ddk后面,不过一般无所谓2用vc新建一个工程,选择Windows的空的工程,然后添加一个cpp文件,内容如下:extern"C"{#ineludevntddk.h>}NTSTATUSDriverEntry(PDRIVER_OBJECTpDriverObject,PUNICODE_STRINGpRegistryPath){NTSTATUS

3、NtStatus=STATUS_SUCCESS;UNICODESTRINGusDriverName,usDosDeviceName;DbgPrint(,,DriverEntryCalled/r/nM);RtllnitUnicodeString(&usDriverName,L'7/Device//Example");RtllnitUnicodeString(&usDosDeviceName,LV/DosDevices//Example");DbgPrint("%S",usDriverName);returnNtStatus;}这里需要用到extern”C"才包含ntdd

4、k.h,为什么呢?因为,如果不这样做,在cpp文件中,默认以为DbgPrint这些函数是C++规则的,那么就导致错误unresolvedexternalsymbol"unsignedlong_cdeclDbgPrint(char(?DbgPrint@@YAKPADZZ)3这时候直接编译,那么就会有错误f:/winddk/3790/inc/ddk/wnet/ntddk.h(11545):errorC2146:syntaxerror:missing7beforeidentifier'ContextRecord'f:/winddk/3790/inc/ddk/wnet/ntd

5、dk.h(11545):errorC2501:'PCONTEXT*:missingstorage-classortypespecifiersf:/winddk/3790/inc/ddk/wnet/ntddk.h(11545):errorC2501:'ContextRecord*:missingstorage-classortypespecifiersf:/winddk/3790/inc/ddk/wnet/ntddk.h(12331):fatalerrorC1189:#error:"notargetarchi怕cture”因为,没有定义任何的ddk的目标体系,这时候,需

6、耍在C++设置Preprocessordefinitions里面,添加预定义_X86_,当然,你也可以在cppIncludentddk.h文件之前这样定义#define_X86_4继续编译,错误为:DriverMain.obj:errorLNK2001:unresolvedexternalsymbol_imp_RtllnitUnicodeString@8DriverMain.obj:errorLNK2001:unresolvedexternalsymbol_DbgPrintLIBCD.Iib(wincrtO.obj):errorLNK2001:unresolvedex

7、ternalsymbol_WinMain@16这时候需要在link->Object/libraryModules去掉全部默认的lib,添加ntoskrnl.lib并且在Output里面更改BaseAddress为0x10000、Entry-pointsymbol为DriverEntry并且把/subsystem:windows改为/subsystem:native5保存,编译,还有一个错误DriverMain.obj:errorLNK2001:unresolvedexternalsymbol_chkesp这个需要在C++选项下面,把/GZ这个参数删除

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。