Windows10的C运行时库被打包在ucrtbase.dll中。但是它们也有ucrtbased,这是“调试版本”。它到底包含了什么?如果我已经有了pdb(公共符号),为什么还需要dll的调试版本?
Windows10的C运行时库被打包在ucrtbase.dll中。但是它们也有ucrtbased,这是“调试版本”。它到底包含了什么?如果我已经有了pdb(公共符号),为什么还需要dll的调试版本?
以下是我所知道的内容。
ucrtbased.dll 包含更多/不同的信息,有助于设置调试环境。如果您尝试在其上运行 "dumpbin",则可以看到这些信息。例如,如果您比较 dumpbin /exports ucrtbased.dll
和 dumpbin /exports ucrtbase.dll
的结果。如果对输出进行差异比较,您将发现一些导出函数是不同的,例如:
_wfullpath
+_wfullpath_dbg
_wgetcwd
+_wgetcwd_dbg
还有一些只能在 ucrtbased.dll 中看到,例如:
_utime32
_utime64
+_VCrtDbgReportA
+_VCrtDbgReportW
要了解更多信息,您可以尝试以不同方式运行 dumpbin,看看您能找到什么。