2

我在我的项目中使用 Crypto++ 库,但我收到以下消息:

内存完整性检查失败。这可能是由调试断点或 DLL 重定位引起的。

并且 Visual Leak Detector 检测到大量内存泄漏,但我会正确调用 dctor。

我已经使用 msvc-2010 (MultiByte) 构建了 Crypto,并且正在使用来自另一个库 (UNICODE) 的 cryptopp

这很危险吗?

4

1 回答 1

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 上的字符集注意事项。

于 2013-10-02T07:14:01.347 回答