安装 Windows Terminal
和 PowerShell
1
| winget install Microsoft.WindowsTerminal Microsoft.PowerShell
|
安装 Visual Studio
在 https://visualstudio.microsoft.com/zh-hans/ 下载安装器
打开安装前,选择 使用C++的桌面开发
配置终端


命令行改为 pwsh.exe
配置主题和背景,字体等
编译器使用
参见 https://learn.microsoft.com/zh-cn/cpp/build/reference/compiler-options-listed-by-category
基本语法
主要编译选项
1. 输出类型控制
1 2 3 4 5 6 7 8
| /Fe:filename # 指定可执行文件名 /Fo:filename # 指定对象文件名 /Fm:filename # 指定映射文件名 /LD # 编译为DLL (动态链接库) /LDd # 编译为调试版DLL /MD # 使用多线程运行时库(DLL版本) /MT # 使用多线程运行时库(静态版本) /MTd # 使用多线程调试运行时库(静态版本)
|
2. 优化选项
1 2 3 4
| /O1 # 最小化大小 /O2 # 最大化速度 (推荐) /Od # 禁用优化 (调试时用) /Ox # 最大优化
|
3. 调试信息
1 2 3
| /Zi # 生成完整调试信息 /Z7 # 生成旧格式调试信息 /DEBUG # 生成调试信息到PDB文件
|
4. 警告控制
1 2 3 4 5 6 7
| /W0 # 禁用所有警告 /W1 # 显示严重警告 /W2 # 显示重要警告 /W3 # 显示大部分警告(默认) /W4 # 显示所有警告 /Wall # 显示所有警告(包括系统头文件) /WX # 将警告视为错误
|
5. C++标准
1 2 3 4 5
| /std:c++11 # C++11标准 /std:c++14 # C++14标准 /std:c++17 # C++17标准 /std:c++20 # C++20标准 /std:c++latest # 最新标准
|
6. 异常处理
1 2 3
| /EHsc # 启用C++异常处理(推荐) /EHs # 启用同步异常处理 /EHa # 启用异步异常处理
|
7. 预处理器选项
1 2 3 4 5
| /D macro # 定义宏 /U macro # 取消定义宏 /I directory # 添加包含目录 /E # 仅预处理到标准输出 /EP # 预处理到标准输出(无#line)
|
示例
1. 编译DLL
1
| cl /std:c++17 /LD hutao_minhook.cpp /DEF:hutao_dll.def /Fe:hutao_minhook.dll
|
说明:
/std:c++17
- 使用C++17标准
/LD
- 编译为DLL
hutao_minhook.cpp
- 源文件
/DEF:hutao_dll.def
- 指定模块定义文件(导出函数列表)
/Fe:hutao_minhook.dll
- 输出文件名
2. 编译可执行文件
1
| cl /EHsc /O2 /MT /std:c++17 hutao_injector.cpp /Fe:hutao_injector.exe
|
说明:
/EHsc
- 启用C++异常处理
/O2
- 最大化速度优化
/MT
- 静态链接运行时库
/std:c++17
- C++17标准
hutao_injector.cpp
- 源文件
/Fe:hutao_injector.exe
- 输出文件名
直接在命令末尾加上某lib可以链接,如 user32.lib
,也可以在代码中使用 #pragma comment(lib, "user32.lib")
,就不需要与指定链接文件
直接从 Developer PowerShell for VS 2022
启动 code .
,再安装微软的 C/C++
和 IntelliCode
插件,即可在vscode上使用MSVC而不需要启动 Visual Studio