當前位置:編程學習大全網 - 源碼下載 - vs2010如何編譯驅動

vs2010如何編譯驅動

1、安裝VS2010,安裝WDK 7.0(DDK);

2、新建VC++->Empty Project

3、打開Configuration Manager 並新建壹個名稱為“ dirver ”的Solution Configuration 並將“dirver” 設為Active Solution Configuration .

4、打開View-> property Manager。

5、在"dirver" solution configuration 上點擊右鍵,選擇Add new property Sheet。取名為“dirverProperty”. 並對他進下以下設置。

5.1. C\C++ - General - Debug Information Format = Program Database (/Zi)

5.2. C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also DBG for Debug config]

WIN32;_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;SRVDBG;DBG;_IDWBUILD;_WIN32_WINNT=0x0400;% (PreprocessorDefinitions)

5.3. C\C++ - Code Generation - Enable C++ Exceptions = No

5.4. C\C++ - Code Generation - Basic Runtime Checks = Default

5.5. C\C++ - Code Generation - Buffer Security Check = No (/GS-)

5.6. C\C++ - Advanced - Calling Convention = __stdcall (/Gz)

5.7. C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are going to use plain C]

5.8. Linker - General - Output File = $(OutDir)\$(ProjectName).sys

5.9. Linker - General - Enable Incremental Linking = Default

5.10. Linker - Input - Additional Dependencies = ntoskrnl.lib hal.lib $(NOINHERIT) [add here needed libs here e.g. ntoskrnl.lib hal.lib]

不知道上面是不是筆誤,應該為:ntoskrnl.lib;hal.lib;%(AdditionalDependencies)

5.11. Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB)

5.12. Linker - Manifest File - Generate Manifest = No

5.13. Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE)

5.14. Linker - System - Driver = Driver (/DRIVER)

5.15. Linker - Advanced - Entry Point = DriverEntry

5.16. Linker - Advanced - Base Address = 0x10000

5.17. Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO)

這個也是錯誤的:應該置空

5.18. Linker - Advanced - Data Execution Prevention (DEP) = Disable (/NXCOMPAT:NO)

這個也是錯誤的:應該置空

6. Config VC++ Directories

6.1 Open Open up property manager by clicking on Menu View->Property Manager.

6.2 Expand the project node and then the Configuration|Platform nodes, you will see "Microsoft.cpp.<Platform>.users" file for each Configuration|Platform. These are the files

for the global settings, similar to the old tools/Options/VC++ Directories.

6.3 Multi-Select "Microsoft.cpp.<Platform>.users", right click and bring up the property page window

6.4 In the property page window, click on "VC++ Directories" (for example) in the left pane, add new paths for the directories such as "Include Directories". separated by

semicolons

(eg:Include Directories config As:

$(ddkroot)\INC

$(ddkroot)\INC\WNET

$(ddkroot)\INC\DDK\WNET

Library Directories config As:

$(ddkroot)\LIB\WNET\I386

)

6.5 Make sure to save the settings before shutting down Visual Studio.

6.6 Re-launch Visual Studio and the new settings will be in effect.

6.7 Note: If you would like to only change the settings for one project, you can right click on the project and bring up the property page. Change the settings for “VC++

Directories”, these settings will be persisted to the project file.

七. OK. Have done. Now you can test it with simple code, e.g.:

#include "ntddk.h"

NTSTATUS

DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)

{

return STATUS_UNSUCCESSFUL;

}

特別說明:

1.

Visual Studio 2010 在智能設備開發方面只支持Windows Phone OS 7.0。如果妳要為Windows CE 5.0和Windows Mobile 6.5開發應用程序,請安裝Visual Studio 2008。

2.

做驅動開發時,SDK的版本要和WDK的版本壹致,即Win7 WDK要配Win7 SDK,否則會出現編譯錯誤。VS2010裏集成了Windows SDK 7.0A。

3.

如果出現類似如下編譯錯誤,解決方法是:拷貝C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然後覆蓋掉C:\WinDDK\7600.16385.1\inc\api\sal.h。

C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing ')' before 'const'

C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing '{' before 'const'

.......

  • 上一篇:升級路由器有什麽好處嗎
  • 下一篇:誰知道<<WINDOWS核心編程>>第5版的目錄,微軟強人寫的
  • copyright 2024編程學習大全網