首页
论坛
课程
招聘
雪    币: 455
活跃值: 活跃值 (359)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝

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

2020-6-29 11:03 1690

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

2020-6-29 11:03
1690

前言

工欲善其事,必先利其器。
本文分享我用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激励机制上线了!发帖不减雪币了!如何获得积分快速升级?

最新回复 (18)
雪    币: 8140
活跃值: 活跃值 (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
pureGavin 活跃值 2020-6-29 11:04
2
0
mark,楼主辛苦了
雪    币: 2740
活跃值: 活跃值 (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Genes 活跃值 2020-6-29 11:53
3
0
mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~
雪    币: 455
活跃值: 活跃值 (359)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
欲望的奴隶 活跃值 2020-6-29 11:58
4
0
Genes mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~
就第一次和前几次麻烦点,后面的项目复用前面的配置文件,非常快速,便捷。
雪    币: 1484
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Rookietp 活跃值 2020-6-29 14:08
5
1
真好,我还是选择vs.
雪    币: 827
活跃值: 活跃值 (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
のばら 活跃值 2020-6-29 15:00
6
0
可以不用,但是得会用
雪    币: 4605
活跃值: 活跃值 (171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
敏而好学 活跃值 2020-6-29 16:42
7
0
VS启动也不慢呀,这是电脑配置的问题吧,我VS都是秒开。
雪    币: 13464
活跃值: 活跃值 (44)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
wsc 活跃值 2020-6-29 17:00
8
0
vim 插件装好,写代码非常快 再也不用鼠标了- -
雪    币: 969
活跃值: 活跃值 (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
江北浪 活跃值 5天前
9
0
Genes mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~
配置够就VS2019最省心,除非电脑带不动VS。毕竟重点在写,而不是环境,环境怎么省心怎么来
雪    币: 3258
活跃值: 活跃值 (65)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
Roger 活跃值 1 5天前
10
0
还是VS吧,vscode在linux用用挺好
雪    币: 5282
活跃值: 活跃值 (61)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
黑洛 活跃值 1 4天前
11
0
VSCode写windows上的cpp代码真的不太行。
雪    币: 4605
活跃值: 活跃值 (171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
敏而好学 活跃值 4天前
12
0
您好,软件调试第二版,卷2何时出呀,是不是讲软件方面的?
雪    币: 4605
活跃值: 活跃值 (171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
敏而好学 活跃值 4天前
13
0
wsc vim 插件装好,写代码非常快 再也不用鼠标了- -
请问软件调试第二版,关于软件方面的书何时出呀,等的心都碎了。
雪    币: 6873
活跃值: 活跃值 (33)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
0
mark
雪    币: 378
活跃值: 活跃值 (23)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 活跃值 1 3天前
15
0
用VS2008+DDKBUILD的路过。
雪    币: 8568
活跃值: 活跃值 (474)
能力值: ( LV5,RANK:250 )
在线值:
发帖
回帖
粉丝
hzqst 活跃值 3 3天前
16
0
经典Anti EAC
雪    币: 360
活跃值: 活跃值 (80)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 活跃值 3天前
17
0
mark
雪    币: 360
活跃值: 活跃值 (80)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 活跃值 3天前
18
0
hzqst 经典Anti EAC
亮生你发现了华点
雪    币: 1534
活跃值: 活跃值 (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风中小筑V 活跃值 11小时前
19
0
我可以不用,,但是我不能不知道..(o゜▽゜)o☆
游客
登录 | 注册 方可回帖
返回