【无标题】

使用VisualStudio高效阅读代码

前言

目前市面上代码阅读的IDE工具非常丰富,也各有千秋。由于工作经历原因,研发机经历过windows、Mac、Linux平台,以及客户端服务端研发。个人而言,觉得IDE还是VisualStudio全面,工具丰富,下面主要介绍日常使用visual studio高效阅读代码的一些总结。

相关准备

  • 安装:从官网下载vsstudio。
  • 下载:vc助手
  • 下载待分析的工程,本次以ffmpeg为例

导入工程

  • 创建新项目,选择"Windows桌面应用程序",写个项目名称,创建。

PS:推荐"windows桌面应用程序",后续可在解决方案界面导入文件夹代码。(之前试过CMake项目不行)

  • 将下载的代码整体目录拷贝到工程中。
  • 切换到visualstudio的"解决方案管理器"页面,点击"显示所有文件",可见"ffmpeg工程文件夹"已经显示在解决方案中。
  • 在"ffmpeg"文件夹上右键"包括在项目中"
  • 使用VC助手检测是否导入成功。"shift+alt+o"打开可见所有文件均导入到项目中。

利用VisualStudio生成类图,结构体调用关系

  • 方式一:切换到类视图(1),在工程名上右键(2),查看(3),查看类图
    ps:如果工程庞大且复杂,一般会生成失败,主要存在部分无法递归生成。此时可以用方式二。
  • 方式二
  • 类图上输入想查看的主类(主结构体),右键查看类图,会创建ClassDiagram.cd文件。
  • 在ClassDiagram类图文件上,展开"InputFile",选中所有字段,右键"显示为关联",可以根据InputFile的变量生成相关联的类(结构体)。同时如果是C++类,可以选择展开基类调用关系。
  • 这是ffmpeg bin中主要结构体调用关系

利用EnterpriseArchitect(EA)画时序图

  • EA画图能力强大,可参考
相关推荐
CoderYanger9 小时前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节
CoderYanger18 小时前
动态规划算法-子序列问题(数组中不连续的一段):30.最长数对链
java·算法·leetcode·动态规划·1024程序员节
CoderYanger19 小时前
C.滑动窗口——2762. 不间断子数组
java·开发语言·数据结构·算法·leetcode·1024程序员节
智者知已应修善业1 天前
【输入两个数字,判断两数相乘是否等于各自逆序数相乘】2023-10-24
c语言·c++·经验分享·笔记·算法·1024程序员节
CoderYanger2 天前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
CoderYanger2 天前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
CoderYanger2 天前
动态规划算法-子数组、子串系列(数组中连续的一段):26.环绕字符串中唯一的子字符串
java·算法·leetcode·动态规划·1024程序员节
韩家阿杰3 天前
RabbitMQ技术的使用
1024程序员节
CoderYanger3 天前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger3 天前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节