未解决的外部符号__stdio_common_vswprintf。

8

我正在编译一个使用微软Dmf框架(DmfK.lib)的内核模式驱动程序。

在最后一次Visual Studio更新后出现了一些奇怪的链接器错误:

EmulationTargetPDO.obj : error LNK2019: unresolved external symbol __stdio_common_vswprintf referenced in function _vsnwprintf_l
Utilities.lib(savedata.obj) : error LNK2001: unresolved external symbol __stdio_common_vswprintf
DmfK.lib(DmfUtility.obj) : error LNK2001: unresolved external symbol __stdio_common_vswprintf
EmulationTargetPDO.obj : error LNK2019: unresolved external symbol __stdio_common_vsprintf referenced in function _vsnprintf_l
DmfK.lib(DmfCore.obj) : error LNK2001: unresolved external symbol __stdio_common_vsprintf
DmfK.lib(Dmf_CrashDump.obj) : error LNK2019: unresolved external symbol __stdio_common_vsprintf_s referenced in function _vsprintf_s_l

以下是我使用的软件和工具包版本(在VS“关于”窗口中显示):

  • Microsoft Visual Studio Professional 2019 版本16.10.0
  • Windows SDK 10.0.19041.685
  • Windows Driver Kit 10.0.19030.1000

第二个奇怪的问题是,我已经下载并安装了 WDK 10.0.19041.685,但 VS 仍然显示 10.0.19030.1000 ...

类似的问题可以在这里找到:编译 Windows 内核模式驱动程序 x64 时出现链接器错误,但尚未解决。

1个回答

13

在包含任何头文件之前设置此定义:

#define _NO_CRT_STDIO_INLINE

或者将其添加到编译器的命令行中:

-D_NO_CRT_STDIO_INLINE
我们(Microsoft驱动程序团队)正在研究这个问题,以消除这种解决方法的需求。

2
非常感谢,这个解决方法有效! - SamT

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