VSCode搭建轻量驱动开发环境
2020-06-30 21:17:09 Author: bbs.pediy.com(查看原文) 阅读量:591 收藏

  1. 看雪论坛
  2. 『编程技术』

欲望的奴隶

雪    币: 430

活跃值: 活跃值 (263)

能力值:

( LV3,RANK:20 )

在线值:

[原创]VSCode搭建轻量驱动开发环境

1天前 560
工欲善其事,必先利其器。
本文分享我用VSCode开发驱动的一些小心得。
如有雷同,纯属巧合

使用VSCode开发驱动相对VS的优势:

  • 启动快
  • 占用内存小
  • 搭建开发环境迅速

总而言之,特别适合一些小驱动的开发。

准备:

  • VS,WDK(VSCode只是作为IDE,编译还是需要VS工具链)

  • CMake

  • VSCode及其插件

  • FindWDK

具体:

下面以一个helloworld为例,一步步实现VSCode编译驱动。

  1. 把FndWDK的cmake文件夹复制到与helloworld同目录

  2. 新建CMakeLists.txt,main.cpp

     cmake_minimum_required(VERSION 3.10)
    
     list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake")
    
     project(helloworld)
    
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX-")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4 /WX-")
    
     # specify the C++ standard
     set(CMAKE_CXX_STANDARD 17)
     set(CMAKE_CXX_STANDARD_REQUIRED True)
    
     add_definitions(-DUNICODE -D_UNICODE)
    
     find_package(WDK REQUIRED)
    
     wdk_add_driver(helloworld
         main.cpp
         )
    
     extern "C"
     {
     #include <ntifs.h>
     #include <ntddk.h>
     }
    
     extern "C" DRIVER_INITIALIZE DriverEntry;
    
     static DRIVER_UNLOAD DriverUnload;
    
     //------------------------------------------------------------
     //
     //
    
     void DriverUnload(PDRIVER_OBJECT driverObject)
     {
         UNREFERENCED_PARAMETER(driverObject);
     }
    
     NTSTATUS DriverEntry(PDRIVER_OBJECT driverObject,
                         PUNICODE_STRING registryPath)
     {
         UNREFERENCED_PARAMETER(registryPath);
         PAGED_CODE();
         auto status = STATUS_SUCCESS;
    
         //---------------------------------------
         //
         driverObject->DriverUnload = DriverUnload;
    
         return status;
     }
    
  3. VSCode打开,会提示选择工具包:

    我选amd64

  4. 点击生成或F7生成项目

    编译成功。还会提示

    点允许,点允许后有代码补全,错误提示

  5. 然后就可以愉快写代码了。

  6. 以后新建驱动项目,直接复制CMakeLists.txt,然后稍加修改就行了

更多实例

更多编译相关选项,可以查看CMAKE教程

  • 支持汇编

      enable_language(ASM_MASM)
    
      add_executable(helloworld
          main.cpp
          utils.asm
          )
    
  • 也可以轻松支持stl,支持大型驱动构建

          set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX-")
          set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4 /WX-")
    
          set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
          set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
    
          list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../cmake")
          find_package(WDK REQUIRED)
    
          include_directories(
              "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/include"
              "C:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/ucrt"
          )
    
          # Add source files
          file(GLOB_RECURSE sourcefiles
              "*.h"
              "*.cc"
              "*.cpp"
          )
    
          add_definitions(-D_NO_CRT_STDIO_INLINE)
    
          wdk_add_driver(AntiEAC_kernel
              ${sourcefiles}
              )
    
          target_link_directories(AntiEAC_kernel PRIVATE
              "./infinityhook"
              "./HWIDSpoofer"
          )
    
          target_link_libraries(AntiEAC_kernel
              libinfinityhook
              libHWIDSpoofer
          )
    

[公告]看雪论坛2020激励机制上线了!发帖不减雪币了!如何获得积分快速升级?

最新回复 (7)

pureGavin

雪    币: 8134

活跃值: 活跃值 (99)

能力值:

( LV8,RANK:120 )

在线值:

发帖

43

回帖

710

粉丝

14

pureGavin 活跃值 1天前

2

0

mark,楼主辛苦了

Genes

雪    币: 2722

活跃值: 活跃值 (24)

能力值:

( LV2,RANK:10 )

在线值:

发帖

0

回帖

14

粉丝

0

Genes 活跃值 1天前

3

0

mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~

欲望的奴隶

雪    币: 430

活跃值: 活跃值 (263)

能力值:

( LV3,RANK:20 )

在线值:

发帖

2

回帖

13

粉丝

0

欲望的奴隶 活跃值 1天前

4

0

Genes mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~

就第一次和前几次麻烦点,后面的项目复用前面的配置文件,非常快速,便捷。

Rookietp

雪    币: 1465

活跃值: 活跃值 (32)

能力值:

( LV2,RANK:10 )

在线值:

发帖

4

回帖

782

粉丝

0

Rookietp 活跃值 1天前

5

1

真好,我还是选择vs.

のばら

雪    币: 784

活跃值: 活跃值 (31)

能力值:

( LV2,RANK:20 )

在线值:

发帖

0

回帖

18

粉丝

0

のばら 活跃值 1天前

6

0

可以不用,但是得会用

敏而好学

雪    币: 4589

活跃值: 活跃值 (75)

能力值:

( LV2,RANK:10 )

在线值:

发帖

83

回帖

467

粉丝

1

敏而好学 活跃值 1天前

7

0

VS启动也不慢呀,这是电脑配置的问题吧,我VS都是秒开。

wsc

雪    币: 13292

活跃值: 活跃值 (31)

能力值:

(RANK:10 )

在线值:

发帖

98

回帖

393

粉丝

12

wsc 活跃值 1天前

8

0

vim 插件装好,写代码非常快 再也不用鼠标了- -

游客

登录 | 注册 方可回帖

返回


文章来源: https://bbs.pediy.com/thread-260380.htm
如有侵权请联系:admin#unsafe.sh