【问题标题】:Crypto++ multibyte/unicode issueCrypto++ 多字节/unicode 问题
【发布时间】:2023-03-17 08:09:01
【问题描述】:
我在我的项目中使用 Crypto++ 库,但我收到以下消息:
内存完整性检查失败。这可能是调试造成的
断点或 DLL 重定位。
并且 Visual Leak Detector 检测到大量内存泄漏,但我会正确地调用 dctor。
我已经使用 msvc-2010 (MultiByte) 构建了 Crypto,并且正在使用来自另一个库 (UNICODE) 的 cryptopp
这很危险吗?
【问题讨论】:
标签:
c++
crypt
crypto++
visual-leak-detector
【解决方案1】:
内存完整性检查失败。
听起来您正在使用可用于 Crypto++ 网站的预构建 FIPS 库之一。 (这是我最常看到的地方)。
如果是这样,您需要使用与构建 DLL 相同的版本来开发您的程序。那可能是 Visual Studio 6 或 Visual Studio 2002/2003 左右。如果您尝试将它与 Visual Studio 2010 ro 2012 一起使用,您将遇到很多内存问题。
Visual Leak Detector 检测到大量内存泄漏,但我会正确调用 dctor。
忽略这些。微软在这该死的东西中存在一个未修复的错误,可以追溯到 Visual Studio 6 天。如果您搜索 Microsoft Connect,您可以找到错误报告。它在 Crypto++ wiki 的 Leak 页面上进行了讨论。
我已经使用 msvc-2010 (MultiByte) 构建了 Crypto,我正在使用来自另一个库 (UNICODE) 的 cryptopp
其他库也必须使用 Visual Studio 2010 构建。 UNICODE 没问题,但您需要处理 MBCS/UNICODE 转换。请参阅 Crypto++ wiki 上的 Character Set Considerations。