ucrtbased.dll与ucrtbase.dll的区别

5

Windows10的C运行时库被打包在ucrtbase.dll中。但是它们也有ucrtbased,这是“调试版本”。它到底包含了什么?如果我已经有了pdb(公共符号),为什么还需要dll的调试版本?


它包含了这个 - Hans Passant
1个回答

6

以下是我所知道的内容。

  1. ucrtbase.dll 是使用最大优化编译的,而 ucrtbased.dll 则没有。
  2. ucrtbased.dll 包含更多/不同的信息,有助于设置调试环境。如果您尝试在其上运行 "dumpbin",则可以看到这些信息。例如,如果您比较 dumpbin /exports ucrtbased.dlldumpbin /exports ucrtbase.dll 的结果。如果对输出进行差异比较,您将发现一些导出函数是不同的,例如:

    _wfullpath
    +_wfullpath_dbg
    _wgetcwd
    +_wgetcwd_dbg

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

    _utime32
    _utime64
    +_VCrtDbgReportA
    +_VCrtDbgReportW

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接