天天资讯:【Visual Leak Detector】源码文件概览 - 综合 -

当前位置:首页  >  综合  > 正文

天天资讯:【Visual Leak Detector】源码文件概览

天天资讯:【Visual Leak Detector】源码文件概览
2023-04-23 03:33:16 来源:博客园
说明

使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇对 VLD 源码包中的各文件用途做个概述。同系列文章目录可见 《内存泄漏检测工具》目录

目录说明1. 整体概览2. 文件夹 .teamcity3 文件夹 lib3.1 文件夹 cppformat(生成 libformat)3.2 文件夹 dbghelp3.3 文件夹 gtest(生成 libgtest)4 文件夹 mfc_detect(vld 辅助工程)5 文件夹 setup5.1 文件夹 dbghelp5.2 文件夹 editenv5.3 文件 build_version.bat5.4 文件 license-free.txt5.5 文件 modpath.iss5.6 文件 version.h5.7 文件 vld-setup.iss5.8 文件 WizSmallImage.bmp6 文件夹 src6.1 外部 34 个文件(vld 核心工程)6.2 文件夹 tests6.3 文件夹 tests\basics(测试工程)6.4 文件夹 tests\console(示例工程)6.5 文件夹 tests\corruption(测试工程)6.6 文件夹 tests\dynamic_app(测试工程)6.7 文件夹 tests\dynamic_dll(测试辅助工程)6.8 文件夹 tests\mfc(示例工程)6.9 文件夹 tests\mfc_dll(测试辅助工程)6.10 文件夹 tests\suite(测试工程)6.11 文件夹 tests\vld_ComTest(测试辅助工程)6.12 文件夹 tests\vld_dll1(测试辅助工程)6.13 文件夹 tests\vld_dll2(测试辅助工程)6.14 文件夹 tests\vld_main(示例工程)6.15 文件夹 tests\vld_main_test(测试工程)6.16 文件夹 tests\vld_unload(测试工程)7 其余 12 个文件7.1 文件 .editorconfig7.2 文件 .gitignore7.3 文件 .mailmap7.4 文件 appveyor.yml7.5 文件 AUTHORS.txt7.6 文件 CHANGES.txt7.7 文件 change_toolset.ps17.8 文件 COPYING.txt7.9 文件 README.md7.10 文件 vld.ini7.11 文件 vld_vs14.sln7.12 文件 vld_vs14_wo_mfc.sln1. 整体概览

vld2.5.1版本为例,下载源码 后,根目录下一共 5个文件夹:.teamcitylibmfc_detectsetupsrc。还有 12个文件:.editorconfig.gitignore.mailmapappveyor.ymlAUTHORS.txtchange_toolset.ps1CHANGES.txtCOPYING.txtREADME.mdvld.inivld_vs14.slnvld_vs14_wo_mfc.sln

2. 文件夹 .teamcity

该文件夹的目录结构如下:


(相关资料图)

vld-master\.teamcity└─Vld    │  project-config.xml    │    ├─buildTypes    │      Vld_CompileAll.xml    │      Vld_DebugCrtDllWin32.xml    │    ├─pluginData    │      plugin-settings.xml    │    └─vcsRoots            Vld_HttpsGithubComKindDragonVldGitRefsHeadsMaster.xml

里面全是 xml文件,是 teamcity持续集成工具的配置文件,用于 VLD项目源码的集成管理,关于该工具的介绍,可访问其官网:Jetbrains-teamcity。

3 文件夹 lib

该文件夹下有三个子文件夹:cppformatdbghelpgtest

3.1 文件夹 cppformat(生成 libformat)

该文件夹的目录结构如下:

vld-master\lib\cppformat    ChangeLog.rst    format.cc    format.h    format.vcxproj    format.vcxproj.filters    LICENSE.rst    posix.cc    posix.h

cppformat是一个开源的 C++ 格式化库,仓库地址为 Github-fmtlib,在 VLD中被用来格式化输出堆栈信息,详见 源码 callstack.cpp 第 224~275 行。

3.2 文件夹 dbghelp

该文件夹的目录结构如下:

vld-master\lib\dbghelp├─include│      DbgHelp.h│└─lib    ├─Win32    │      DbgHelp.Lib    │    └─x64            DbgHelp.Lib

dbghelpWindows系统下的调试跟踪库,相关信息可见 关于 DbgHelp,在 VLD中被用来获取堆栈信息,详见源码中 callstack.cpp、vld.cpp、vld_hooks.cpp 等文件。

3.3 文件夹 gtest(生成 libgtest)

该文件夹的目录结构如下:

vld-master\lib\gtest│  CHANGES│  CMakeLists.txt│  configure│  configure.ac│  CONTRIBUTORS│  LICENSE│  Makefile.am│  Makefile.in│  README│├─include│  └─gtest│      │  gtest-death-test.h│      │  gtest-message.h│      │  gtest-param-test.h│      │  gtest-param-test.h.pump│      │  gtest-printers.h│      │  gtest-spi.h│      │  gtest-test-part.h│      │  gtest-typed-test.h│      │  gtest.h│      │  gtest_pred_impl.h│      │  gtest_prod.h│      ││      └─internal│              gtest-death-test-internal.h│              gtest-filepath.h│              gtest-internal.h│              gtest-linked_ptr.h│              gtest-param-util-generated.h│              gtest-param-util-generated.h.pump│              gtest-param-util.h│              gtest-port.h│              gtest-string.h│              gtest-tuple.h│              gtest-tuple.h.pump│              gtest-type-util.h│              gtest-type-util.h.pump│├─msvc│      gtest-md.sln│      gtest.sln│      gtest.vcxproj│      gtest.vcxproj.filters│      gtest_main.vcxproj│      gtest_main.vcxproj.filters│      gtest_prod_test.vcxproj│      gtest_prod_test.vcxproj.filters│      gtest_unittest.vcxproj│      gtest_unittest.vcxproj.filters│└─src        gtest-all.cc        gtest-death-test.cc        gtest-filepath.cc        gtest-internal-inl.h        gtest-port.cc        gtest-printers.cc        gtest-test-part.cc        gtest-typed-test.cc        gtest.cc        gtest_main.cc

gtestGoogle开源的单元测试框架,仓库地址为 Github-googletest,在 VLD中被用来测试 VLD的各个功能,生成测试报告,详见 vld-master\src\tests 文件夹。

4 文件夹 mfc_detect(vld 辅助工程)

该文件夹的目录结构如下:

vld-master\mfc_detect│  resource.h│  StdAfx.cpp│  StdAfx.h│  vldmfc.cpp│  vldmfc.h│  vldmfc.rc│  vldmfc_detect.sln│  vldmfc_detect.vcxproj│  vldmfc_detect.vcxproj.filters│  vldmfc_detect_vs10.sln│  vldmfc_detect_vs11.sln│  vldmfc_detect_vs14.sln│└─res        vldmfc.ico        vldmfc.rc2

这个文件夹中的 sln解决方案,主要用于获取各版本 mfc.dllnew函数序号(即 ORDINAL值),将获取的函数序号用于 VLD开发,用处详见 源码 dllspatches.cpp 第 88~370 行,获取思路详见 StackOverflow-Getting-ordinal-from-function-name-programmatically,获取时对应的动态库版本及函数详见 文件 vldmfc.cpp 第 189~301 行。这个文件夹下有多个 .sln文件,它们分别对应不同的 Microsoft Visual Studio版本,将其用记事本或其他文本编辑器打开,可以知道对应的版本号:

文件 vldmfc_detect.sln对应 Visual Studio 2008VC版本号为 VC9.0。文件 vldmfc_detect_vs10.sln对应 Visual Studio 2010VC版本号为 VC10.0。文件 vldmfc_detect_vs11.sln对应 Visual Studio 2012VC版本号为 VC11.0。文件 vldmfc_detect_vs14.sln对应 Visual Studio 2015VC版本号为 VC14.0。5 文件夹 setup

这个文件夹中的文件主要用来打包 VLD的安装程序,使用的安装制作软件为 Inno Setup 5.4.2,其官网为:Inno Setup。该文件夹下有两个子文件夹:dbghelpeditenv。以及 6个文件:build_version.batlicense-free.txtmodpath.issversion.hvld-setup.issWizSmallImage.bmp

5.1 文件夹 dbghelp

该文件夹的目录结构如下:

vld-master\setup\dbghelp├─x64│      dbghelp.dll│      Microsoft.DTfW.DHL.manifest│└─x86        dbghelp.dll        Microsoft.DTfW.DHL.manifest

dbghelp下存储的是 VLD依赖的 dbghelp动态库及对应的清单文件(.manifest文件),安装 VLD时会被存储到 VLD安装目录下(详见 .\Visual Leak Detector\bin)。

5.2 文件夹 editenv

该文件夹的目录结构如下,只有一个 editenv.dll文件:

vld-master\setup\editenv    editenv.dll

这个库是 Dan Moulding旧版 VLD修改环境变量时使用的动态库,详见 StackOverflow-programmatically-adding-a-directory-to-windows-path-environment-variable,对应的仓库为 Github-editenv。KindDragon新版 VLD是没有用到这个文件的,使用的是文件 modpath.iss,另一种方法。

5.3 文件 build_version.bat

文件 build_version.bat是批处理脚本,用于 Inno Setup快速打包 VLD安装器。

5.4 文件 license-free.txt

文件 license-free.txt是要在 VLD安装程序中显示的许可信息。

5.5 文件 modpath.iss

文件 modpath.issInno Setup脚本,采用 Pascal编写,用于 VLD安装时修改 Path环境变量。

5.6 文件 version.h

文件 version.h存储 VLD的版本信息,被 VLD源码引用,详见 源码 vldint.h 第 40 行。

5.7 文件 vld-setup.iss

文件 vld-setup.issInno Setup生成的脚本,用于指导生成 VLD安装器,默认情况下,在安装完成后会生成对应的卸载器 unins000.datunins000.exe,详见 VLD安装目录。

5.8 文件 WizSmallImage.bmp

文件 WizSmallImage.bmp是安装程序右上角显示的图像。

6 文件夹 src

这个文件夹用来存储 VLD库的核心源代码,以及 VLD功能测试的源代码。有一个 tests子文件夹及另外 34个文件。

6.1 外部 34 个文件(vld 核心工程)

34个文件分别为:

vld-master\src   callstack.cpp   callstack.h   criticalsection.h   crtmfcpatch.h   dbghelp.h   dllspatches.cpp   loaderlock.h   map.h   ntapi.cpp   ntapi.h   resource.h   runalltests.bat   runtests.bat   set.h   stdafx.cpp   stdafx.h   tree.h   utility.cpp   utility.h   vld.cpp   vld.dll.dependency.x64.manifest   vld.dll.dependency.x86.manifest   vld.h   vld.natvis   vld.rc   vld.vcxproj   vld.vcxproj.filters   vldallocator.h   vldapi.cpp   vldheap.cpp   vldheap.h   vldint.h   vld_def.h   vld_hooks.cpp

其中有 17.h文件、9.cpp文件,都是 VLD核心源码的一部分,以下 6个文件用于 VLD项目配置、依赖库的版本控制等:

vld.natvisvld.rcvld.vcxprojvld.vcxproj.filtersvld.dll.dependency.x64.manifestvld.dll.dependency.x86.manifest

以下两个批处理文件用于 VLD的功能批量测试,并自动生成测试报告。

runalltests.batruntests.bat
6.2 文件夹 tests

这个文件夹用来存储 VLD的测试工程代码以及使用示例工程代码,有 14个子文件夹及另外 2个文件。

Common.propsVS的属性管理文件,被多个 VLD测试工程所使用,使用介绍可参考 .vcxproj 和 .props 文件结构。copydlls.bat是批处理脚本,被用做为 VLD测试工程的预先生成事件(Pre-Build Event),将 vld.inivld_xx.dllvld_xx.pdbdbghelp.dllMicrosoft.DTfW.DHL.manifest5个依赖文件复制到指定目录。6.3 文件夹 tests\basics(测试工程)

该文件夹的目录结构如下:

vld-master\src\tests\basics    Allocs.cpp    Allocs.h    basics.cpp    basics.vcxproj    basics.vcxproj.filters    basics_disabled.cpp    stdafx.cpp    stdafx.h    targetver.h

这是一个 VLD测试工程,用来测试:当使用不同的内存分配函数(例如 malloccallocplacement new等)时,VLD能否正确检测出内存泄漏。被测的内存分配函数详见 Allocs.h 文件 与 Allocs.cpp 文件。测试用例详见 basics.cpp 文件 与 basics_disabled.cpp 文件。

6.4 文件夹 tests\console(示例工程)

该文件夹的目录结构如下:

vld-master\src\tests\console    main.c    main.cpp    README.md    vldconsole.sln    vldconsole.vcxproj    vldconsole.vcxproj.filters    vldconsole_vs10.sln

这是一个 VLD示例工程,用来演示如何在普通的控制台程序中使用 VLD库,演示目标为:VLD库不仅能检测出 C程序中 malloc引起的泄漏(详见 main.c 文件),也能检测出 C++程序中 new引起的泄漏(详见 main.cpp 文件)。

文件 vldconsole.sln对应 Visual Studio 2008VC版本号为 VC9.0。文件 vldconsole_vs10.sln对应 Visual Studio 2010VC版本号为 VC10.0。6.5 文件夹 tests\corruption(测试工程)

该文件夹的目录结构如下:

vld-master\src\tests\corruption    corruption.cpp    corruption.vcxproj    corruption.vcxproj.filters    stdafx.cpp    stdafx.h    targetver.h    Tests.cpp    Tests.h

这是一个 VLD测试工程,用来测试:当内存分配函数与释放函数不匹配(例如 mallocdelete配对使用)、分配的堆与释放的堆不匹配时,VLD能否正确检测出内存泄漏。被测的失配用法详见 Tests.h 文件 与 Tests.cpp 文件。测试用例详见 corruption.cpp 文件。

6.6 文件夹 tests\dynamic_app(测试工程)

该文件夹的目录结构如下:

vld-master\src\tests\dynamic_app    dynamic_app.cpp    dynamic_app.vcxproj    dynamic_app.vcxproj.filters    LoadTests.cpp    LoadTests.h    stdafx.cpp    stdafx.h    targetver.h    ThreadTest.cpp    ThreadTests.h

这是一个 VLD测试工程,用来测试:当动态加载普通动态库与 MFC动态库时,VLDEnableModuleVLDResolveCallstacks功能是否正常,以及当在多线程中加载动态库时,VLDGetLeaksCount及泄漏检测功能是否正常。被测的动态加载用法详见 LoadTests.h 文件 与 LoadTests.cpp 文件,被测的多线程用法详见 ThreadTests.h 文件 与 ThreadTest.cpp 文件。测试用例详见 dynamic_app.cpp 文件。这一测试工程需依赖 dynamic.dlltest_mfc.dll这两个动态库,它们由 tests文件夹下的另外两个工程生成。

6.7 文件夹 tests\dynamic_dll(测试辅助工程)

该文件夹的目录结构如下:

vld-master\src\tests\dynamic_dll    dllmain.cpp    dynamic.cpp    dynamic.h    dynamic.vcxproj    dynamic.vcxproj.filters    stdafx.cpp    stdafx.h    targetver.h

这是一个 VLD测试辅助工程,用来生成动态库 dynamic.dll,然后将生成的动态库给其他测试工程做 VLD功能测试。库中用三种方式(mallocnewnew[])分别产生 6处泄漏,一共 18处泄漏,且库源码中未包含 vld.h,详见 dynamic.h 文件 与 dynamic.cpp 文件。

6.8 文件夹 tests\mfc(示例工程)

该文件夹的目录结构如下:

vld-master\src\tests\mfc│  resource.h│  StdAfx.cpp│  StdAfx.h│  vldmfc.cpp│  vldmfc.h│  vldmfc.rc│  vldmfc.sln│  vldmfc.vcxproj│  vldmfc.vcxproj.filters│  vldmfcdlg.cpp│  vldmfcdlg.h│  vldmfc_vs10.sln│└─res        vldmfc.ico        vldmfc.rc2

这是一个 VLD示例工程,用来演示如何在 MFC程序中使用 VLD库,演示目标为:VLD库能检测出 MFC程序中的内存泄漏。它通过模态显示一个选择对话框(详见 vldmfcdlg.h 文件 与 vldmfcdlg.cpp 文件),让用户选择是否故意产生一个内存泄漏(详见 vldmfc.h 文件 与 vldmfc.cpp 文件),然后通过查看控制台的 VLD输出,来演示其内存泄漏检测功能。

文件 vldmfc.sln对应 Visual Studio 2008VC版本号为 VC9.0。文件 vldmfc_vs10.sln对应 Visual Studio 2010VC版本号为 VC10.0。6.9 文件夹 tests\mfc_dll(测试辅助工程)

该文件夹的目录结构如下:

vld-master\src\tests\mfc_dll│  mfc.cpp│  mfc.def│  mfc.h│  mfc.rc│  mfc.vcxproj│  mfc.vcxproj.filters│  Resource.h│  stdafx.cpp│  stdafx.h│  targetver.h│└─res        mfc.rc2

这是一个 VLD测试辅助工程,用来生成动态库 test_mfc.dll,然后将生成的动态库给其他测试工程做 VLD功能测试。库中用三种方式(newCString initialisation with stringnew[])产生一共 11处泄漏,且库源码中未包含 vld.h,详见 mfc.cpp 文件。

6.10 文件夹 tests\suite(测试工程)

该文件夹的目录结构如下:

vld-master\src\tests\suite    testsuite.cpp    testsuite.vcxproj    testsuite.vcxproj.filters    testsuite.vcxproj.vspscc

这是一个 VLD测试工程,只有一个 cpp文件,用来测试:在多线程(使用 _beginthreadex创建线程)、多种分配方式(例如 newmallocHeapAlloc等)、不同递归深度、随机分配内存、随机释放内存时,VLD能否按需正确检测出内存泄漏(测试过程中也会随机地配对使用 VLDDisableVLDRestore忽略一些泄漏,详见 testsuite.cpp 第 220~225 行)。

6.11 文件夹 tests\vld_ComTest(测试辅助工程)

该文件夹的目录结构如下:

vld-master\src\tests\vld_ComTest    ComTest.aps    ComTest.cpp    ComTest.def    ComTest.idl    ComTest.rc    ComTest.rgs    ComTest.sln    ComTest_vs14.vcxproj    ComTest_vs14.vcxproj.filters    dlldata.c    dllmain.cpp    dllmain.h    MyMath.cpp    MyMath.h    MyMath.rgs    Resource.h    stdafx.cpp    stdafx.h    targetver.h    xdlldata.c    xdlldata.h

这是一个 VLD测试辅助工程,用于测试 VLD能否检测到 COM-based leaks,工程运行后生成了一个 COM组件 ComTest.dll,源文件 stdafx.h中有 #include ,但其接口函数并没有故意产生内存泄漏(如下,详见 MyMath.cpp 文件),且在 tests文件夹下未发现有工程使用了 ComTest.dll

STDMETHODIMP CMyMath::Test(void){AFX_MANAGE_STATE(AfxGetStaticModuleState());return S_OK;}
6.12 文件夹 tests\vld_dll1(测试辅助工程)

该文件夹的目录结构如下:

vld-master\src\tests\vld_dll1    dllmain.cpp    stdafx.cpp    stdafx.h    targetver.h    vld_dll1_vs14.vcxproj    vld_dll1_vs14.vcxproj.filters

这是一个 VLD测试辅助工程,用来生成动态库 vld_dll1.dll,然后将生成的动态库给其他测试工程做 VLD功能测试,这个库源码中包含了 vld.h,且使用了 VLD_FORCE_ENABLE宏。库中用 malloc产生 1处泄漏,详见 dllmain.cpp 文件。

6.13 文件夹 tests\vld_dll2(测试辅助工程)

该文件夹的目录结构如下:

vld-master\src\tests\vld_dll2    dllmain.cpp    stdafx.cpp    stdafx.h    targetver.h    vld_dll2_vs14.vcxproj    vld_dll2_vs14.vcxproj.filters

这是一个 VLD测试辅助工程,用来生成动态库 vld_dll2.dll,然后将生成的动态库给其他测试工程做 VLD功能测试。与 vld_dll1.dll一样,这个库源码中(stdafx.h 文件)包含了 vld.h,且使用了 VLD_FORCE_ENABLE宏。库中用 malloc产生 1处泄漏,详见 dllmain.cpp 文件。

6.14 文件夹 tests\vld_main(示例工程)

该文件夹的目录结构如下:

vld-master\src\tests\vld_main    stdafx.cpp    stdafx.h    targetver.h    vld_main.cpp    vld_main_vs14.vcxproj    vld_main_vs14.vcxproj.filters

这是一个 VLD示例工程,工程运行后生成了 vld_main.exe,演示目标为:VLD能检测出全局静态变量的内存泄漏,详见 vld_main.cpp 文件。

6.15 文件夹 tests\vld_main_test(测试工程)

该文件夹的目录结构如下:

vld-master\src\tests\vld_main_test    stdafx.cpp    stdafx.h    targetver.h    vld_main_test.cpp    vld_main_test_vs14.vcxproj    vld_main_test_vs14.vcxproj.filters

这是一个 VLD测试工程,用来测试:VLD对全局静态变量的泄漏检测功能是否正常,被测程序为 tests\vld_main工程生成的 vld_main.exe。测试用例详见 vld_main_test.cpp 文件。

6.16 文件夹 tests\vld_unload(测试工程)

该文件夹的目录结构如下:

vld-master\src\tests\vld_unload    stdafx.cpp    stdafx.h    targetver.h    vld_unload.cpp    vld_unload_vs14.vcxproj    vld_unload_vs14.vcxproj.filters

这是一个 VLD测试工程,用来测试:主工程未包含 vld.h,但多个被调的动态库包含 vld.h时,对各 dll进行动态安装、动态卸载的情况下,VLD的泄漏检测功能是否正常。测试用例详见 vld_unload.cpp 文件。这一测试工程需依赖 vld_dll1.dllvld_dll2.dll这两个动态库,它们由 tests文件夹下的另外两个工程生成。

7 其余 12 个文件

源码根目录下还有以下 12个文件:

vld-master   .editorconfig   .gitignore   .mailmap   appveyor.yml   AUTHORS.txt   CHANGES.txt   change_toolset.ps1   COPYING.txt   README.md   vld.ini   vld_vs14.sln   vld_vs14_wo_mfc.sln
7.1 文件 .editorconfig

这个文件用来统一代码样式,帮助开发者维护编辑器编码风格,以下几个资料对理解该文件的作用有帮助:

牧之博客-.editorconfig 文件。Microsoft-使用 EditorConfig 创建可移植的自定义编辑器设置。EditorConfig。7.2 文件 .gitignore

这个文件用来指明源码上传 Git时,哪些文件应该被忽略,这些文件无需纳入 Git管理。Github-gitignore 上有一些 .gitignore文件模板,需要时可以拿来用。

7.3 文件 .mailmap

这个文件用于将作者姓名和电子邮件映射到单个规范值,以下几个资料对理解该文件的作用有帮助:

腾讯云开发者社区-如何使用git .mailmap显示作者组织?。w3cschool-git-check-mailmap。7.4 文件 appveyor.yml

这个文件用于持续集成服务,自动构建项目,以下几个资料对理解该文件的作用有帮助:

appveyor-docs。51CTO博客-使用Appveyor持续集成博客。7.5 文件 AUTHORS.txt

这个文件用于罗列开发者清单。

7.6 文件 CHANGES.txt

这个文件用于记录版本迭代日志,各版本更新提要。

7.7 文件 change_toolset.ps1

这个文件是一个 PowerShell脚本,阅读内容可知这个脚本是用来批量更改 Toolset值的。除 format.vcxprojvld.vcxproj这两个文件外,它能修改当前目录及其所有子文件夹中的 vcxproj文件,将文件中的 值修改为指定值。同时,修改 .\src\tests\Common.props文件中的 值为指定值。关于 ,可参考 Microsoft-platform-toolset 以及 关于VS项目属性: Target Platform Version 和 Platform ToolSet。

7.8 文件 COPYING.txt

这是一份许可说明文件,内容是 LGPL 2.1开源协议。

7.9 文件 README.md

这个文件里对 VLD的功能用途做了大致介绍,与 Github-VLD 上的介绍内容一样。

7.10 文件 vld.ini

这个是 VLD库的配置文件,库的使用者需要用到,使用方法详见本人同系列文章。

7.11 文件 vld_vs14.sln

这个文件是 VLD项目的解决方案文件,需用 Visual Studio 2015打开,内含 16个子项目,包含 VLD库项目、测试项目、示例项目,如下图所示:

各项目的简要介绍见下表,可以根据项目文件夹名称上翻本文章到介绍处。

标号项目名称对应文件夹名称项目简介
1dynamicvld-master\src\tests\dynamic_dll测试用 - 依赖库
2test_mfcvld-master\src\tests\mfc_dll测试用 - 依赖库
3vld_dll1vld-master\src\tests\vld_dll1测试用 - 依赖库
4vld_dll2vld-master\src\tests\vld_dll2测试用 - 依赖库
5libformatvld-master\lib\cppformatVLD - 输出格式化库
6libgtestvld-master\lib\gtest\msvcGoogle Test 测试框架
7ComTestvld-master\src\tests\vld_ComTest测试用-依赖库
8corruptionvld-master\src\tests\corruption库功能测试
9dynamic_appvld-master\src\tests\dynamic_app库功能测试
10test_basicsvld-master\src\tests\basics库功能测试
11testsuitevld-master\src\tests\suite库功能测试
12vld_mainvld-master\src\tests\vld_main用法示例
13vld_main_testvld-master\src\tests\vld_main_test库功能测试
14vld_unloadvld-master\src\tests\vld_unload库功能测试
15vldmfcvld-master\src\tests\mfc用法示例
16vldvld-master\srcVLD - 库
7.12 文件 vld_vs14_wo_mfc.sln

这个文件也是 VLD项目的解决方案文件,需用 Visual Studio 2015打开,内含 13个子项目,包含 VLD库项目、测试项目、示例项目,文件名中的 wowithout的简写,表示没有 MFC相关的测试项目(除了没有 test_mfcComTestvldmfc这三个项目外,其他地方与 vld_vs14.sln一样),如下图所示:

标签:

(责任编辑:news01)
走出国门,微型伺服电缸惊艳世界! 焦点快报

走出国门,微型伺服电缸惊艳世界! 焦点快报

当地时间2023年4月17日,为期五天的汉诺威工业博览会在德国汉诺威国际展览中心隆重开幕!因时机器人立足机
04-21 23:57:09
当前看点!4月21日 13:16分  榕基软件(002474)股价快速拉升

当前看点!4月21日 13:16分 榕基软件(002474)股价快速拉升

分时图快速拉升意味此时存在大单买入,在大单的推动下,股价快速地上涨。截止发稿,榕基软件(002474)涨幅
04-21 23:24:03
万和燃气热水器连续十九年市场综合占有率位列第一-当前观点

万和燃气热水器连续十九年市场综合占有率位列第一-当前观点

[gf]2003[ gf][gf]2003[ gf]4月20日,由中国商业联合会、中华全国商业信息中心联合主办的“202
04-21 23:06:44
环球热议:天邑股份(300504):该股换手率大于8%(04-20)

环球热议:天邑股份(300504):该股换手率大于8%(04-20)

换手率大于8%说明了该股票当前处于比较活跃的局面,得到市场上资金的关注,如果在股价上涨途中,换手率5%,
04-21 23:02:55
世界速看:大立科技(002214.SZ):一季度业绩预亏3900万元-5200万元

世界速看:大立科技(002214.SZ):一季度业绩预亏3900万元-5200万元

格隆汇4月21日丨大立科技(002214)(002214 SZ)公布2023年第一季度业绩预告,报告期归属于上市公司股东的净利
04-21 21:46:53
政前方丨中央决定:王廷科任中国人民保险集团党委书记 天天速讯

政前方丨中央决定:王廷科任中国人民保险集团党委书记 天天速讯

2023年4月21日下午,中国人民保险集团股份有限公司召开干部会议。中央组织部有关负责同志宣布了中央决定:
04-21 21:19:52
世界热头条丨澳门春季塔石艺墟开幕

世界热头条丨澳门春季塔石艺墟开幕

人民网澳门4月20日电(记者富子梅)由澳门特区政府文化局主办的春季塔石艺墟20日开幕,即日起至4月23日、4月27
04-21 20:57:14
视点!封国采邑制产生于周王朝_封国采邑制

视点!封国采邑制产生于周王朝_封国采邑制

1、采邑制,即西欧采邑制,是中世纪在西欧实施的一种土地占有制度。2、采邑原指西欧中世纪早期国王封赏给臣
04-21 20:51:01
汇丰 HSBC宣布推出基于AI的股票指数——AI全球战术指数 HSBC AI Global Tactical Index

汇丰 HSBC宣布推出基于AI的股票指数——AI全球战术指数 HSBC AI Global Tactical Index

汇丰(HSBC)宣布推出基于AI的股票指数——AI全球战术指数(HSBCAIGlobalTacticalInde
04-21 19:44:24
人民银行货币政策司司长邹澜:3月新发放个人住房贷款利率为4.14% 同比下降了1.35个百分点 世界热头条

人民银行货币政策司司长邹澜:3月新发放个人住房贷款利率为4.14% 同比下降了1.35个百分点 世界热头条

人民银行货币政策司司长邹澜4月20日在2023年一季度金融统计数据有关情况新闻发布会上表示,今年以来,人民
04-21 19:43:48
合肥热电:供热市场“向东进军”再结硕果

合肥热电:供热市场“向东进军”再结硕果

近日,合肥市东部供热市场开发再传喜讯,合肥热电与安徽丰乐香料签订能源建设合同。该项目用汽量约6吨 小时
04-21 19:36:52
世界快播:罗梅罗报巴萨训练情况:登贝莱、佩德里和德容都参加了球队合练

世界快播:罗梅罗报巴萨训练情况:登贝莱、佩德里和德容都参加了球队合练

直播吧4月21日讯北京时间4月23日22:15,西甲联赛第30轮,巴塞罗那将坐镇诺坎普球场迎战马竞。今日巴萨进行
04-21 19:33:56
往车窗上塞涉黄“小卡片” 烟台警方抓获两人_天天快讯

往车窗上塞涉黄“小卡片” 烟台警方抓获两人_天天快讯

齐鲁网·闪电新闻4月21日讯长期以来,烟台芝罘公安结合工作实际,全面落实打、防、管、控、治各项工作措...
04-21 18:55:11
世界热消息:世界观丨日本这番话 德国环境部长听不下去了

世界热消息:世界观丨日本这番话 德国环境部长听不下去了

近日,日方在G7部长会议上声称,他们的核污水排放计划获得了多国支持。不过,这一言论却被德国环境部长当场
04-21 17:57:14
今日要闻!中广核新能源:将在浙江江山加快开展光伏、分散式风电等新能源项目开发投资

今日要闻!中广核新能源:将在浙江江山加快开展光伏、分散式风电等新能源项目开发投资

从江山市政府官网获悉,4月20日下午,浙江江山市与中广核新能源公司签订战略合作协议。中广核新能源公司副
04-21 17:56:18
4nm Zen4!宏碁全球抢发AMD锐龙9 7940H笔记本:配个RTX 4050-环球新消息

4nm Zen4!宏碁全球抢发AMD锐龙9 7940H笔记本:配个RTX 4050-环球新消息

4nmZen4!宏碁全球抢发AMD锐龙97940H笔记本:配个RTX4050
04-21 17:45:50
他是一名记者,也是一名战士-环球时快讯

他是一名记者,也是一名战士-环球时快讯

他是一名记者,也是一名战士
04-21 17:28:04
周鸿祎内部信:360员工不会被GPT淘汰 鼓励使用GPT拿绩效

周鸿祎内部信:360员工不会被GPT淘汰 鼓励使用GPT拿绩效

据新浪科技,360集团创始人周鸿祎发布主题为“三六零人工智能总动员”的内部信,要求360每一位员工、每...
04-21 16:38:06
环球焦点!常陆院光声音 常陆院光

环球焦点!常陆院光声音 常陆院光

今天来聊聊关于常陆院光声音,常陆院光的文章,现在就为大家来简单介绍下常陆院光声音,常陆院光,希望对各
04-21 16:29:26
2023中国企业培训与发展年会暨教育培训博览会于4月20日盛大开幕

2023中国企业培训与发展年会暨教育培训博览会于4月20日盛大开幕

2023中国企业培训与发展年会暨教育培训博览会于4月20日盛大开幕
04-21 16:18:23
【异动股】乳业板块拉升,天润乳业(600419.CN)涨9.89%

【异动股】乳业板块拉升,天润乳业(600419.CN)涨9.89%

【财华社讯】今日早盘,截至10:15,乳业板块拉升。天润乳业(600419 CN)涨9 89%报19 12元,麦趣尔(002719 CN)涨7 66%报11 8
04-21 15:34:06
印度能否成为全球显示面板业的新一极?|如数家珍

印度能否成为全球显示面板业的新一极?|如数家珍

中国台湾面板企业群创转让技术,日韩配套企业提供支持,印度首条第8 6代液晶(LCD)面板生产线将于今年年底
04-21 15:20:40
当前观点:2023年一季度兖矿能源商品煤产量下降10.41% 销量下降2.91%

当前观点:2023年一季度兖矿能源商品煤产量下降10.41% 销量下降2.91%

2023年一季度兖矿能源商品煤产量下降10 41%销量下降2 91%,兖矿能源近日发布的公告显示,2023年一季度公司商
04-21 15:08:24
青园教育集团数学名师工作室联合教研 为工作室发展赋能 焦点速递

青园教育集团数学名师工作室联合教研 为工作室发展赋能 焦点速递

青园教育集团数学名师工作室联合教研为工作室发展赋能
04-21 14:55:11
天天看点:快讯2023-04-21 04:10:01

天天看点:快讯2023-04-21 04:10:01

4月21日电,全食超市(WholeFoods)计划裁员几百人。
04-21 14:04:57
邮政银行邮益宝普通转出几天到账? 邮政银行邮益宝资金转出到账时间|最新消息

邮政银行邮益宝普通转出几天到账? 邮政银行邮益宝资金转出到账时间|最新消息

邮政银行邮益宝普通转出几天到账?最快是1天到账,否则就是2天到账,主要是看在哪个时间点申请的转出,T
04-21 13:32:02
居民楼起火致21人被困!这个习惯很多人有……-热头条

居民楼起火致21人被困!这个习惯很多人有……-热头条

居民楼起火致21人被困!这个习惯很多人有……
04-21 13:30:04
热文:农业农村部:农民种豆的意愿有所回升

热文:农业农村部:农民种豆的意愿有所回升

App4月20日消息,农业农村部种植业管理司司长潘文博今日在新闻发布会上表示,由于前期大豆市场价格走低、比
04-21 13:27:16
今日要闻!奔驰最高级纯电SUV!配置都不是重点 价格也就亿点点贵?

今日要闻!奔驰最高级纯电SUV!配置都不是重点 价格也就亿点点贵?

梅赛德斯-奔驰品牌官方正式发布了全新纯电SUV车型——梅赛德斯-迈巴赫EQSSUV。豪华程度堪称汽车头等舱。
04-21 12:43:15

为您推荐

精彩推送