首页 > 解决方案 > spdlog 记录单个 wchar_t 字符串,其中包含包含 {...} 的数据

问题描述

我正在将 spdlog 与注册表应用程序一起使用。尝试记录包含 CLSID 表示的单个 wchar_t 字符串时出现异常,例如“{0C092C21-882C-11CF-A6BB-080C7B2D682}”。我知道在 spdlog 中“{}”是一个格式化参数字符对,并且接受上面的数据应该抛出一个异常,但是我如何记录这些数据呢?

标签: c++spdlog

解决方案


您将其作为参数传递:

spdlog::error(L"{}", L"{0C092C21-882C-11CF-A6BB-080C7B2D682}");

通常,您应该对所有不是常量字符串文字的输入字符串执行此操作,您知道其内容不包含格式说明符。这同样适用于printf函数族,除了它们的格式说明符不同。


推荐阅读