ucrtbased.dll 与 ucrtbase.dll

use*_*142 5 c windows visual-c++

Windows10 的 C 运行时在 ucrtbase.dll 中提供。但他们也有ucrtbased,即“调试版本”。它到底包含什么?如果我有 .pdb(公共符号),为什么还需要 dll 的调试版本?

Ric*_* Li 6

只是为了提供我所知道的。

  1. ucrtbase.dll 是使用最大优化进行编译的,而 ucrtbased.dll 则不是。
  2. ucrtbased.dll 比 ucrtbase.dll 携带更多/不同的信息。他们正在帮助设置调试环境。如果您尝试对其运行“dumpbin”,则可以看到这些信息。例如,如果您比较dumpbin /exports ucrtbased.dll和的结果dumpbin /exports ucrtbase.dll。如果你对输出进行比较:你会发现导出的一些函数是不同的,如下所示:

    _wfullpath
    +_wfullpath_dbg
    _wgetcwd
    +_wgetcwd_dbg

    还有一些只能在 ucrtbased.dll 中看到,如下所示:

    _utime32
    _utime64
    +_VCrtDbgReportA
    +_VCrtDbgReportW

    要了解更多信息,您可以尝试以不同的方式 dumpbin 看看能找到什么。