3

我有一个问题,在 Visual C++ 2008 中运行时检查失败,因为将太大的数字转换为较小的类型。故障出在外部 dll 中,所以我无法在那里修复它。那么如何关闭外部项目的运行时检查。

4

3 回答 3

3

如果强制转换(和检查)发生在您无法重新编译的这个 DLL 中,那么您不能轻易关闭检查。

您唯一能做的就是更改传递给 DLL 的数据以避免该问题。或者修补二进制文件以禁用检查,这可能不会像这种事情那样非常困难 - 你对反汇编程序好吗?

于 2008-10-02T09:17:36.627 回答
2

运行时检查取决于选项 /RTC c 能够在项目的 Visual Studio 配置属性、C/C++ 代码生成、“较小的类型检查”中找到。您应该关闭它,然后重新编译。

于 2021-04-28T07:34:00.787 回答
-1

您始终可以在项目设置中关闭强制转换为较小的类型检查。

如果在检查被编译到 dll 时这不起作用,那么您可以尝试链接到非调试版本的 dll,因为检查只能用于调试“优化”构建。当然,它可能会影响您的调试。

于 2008-10-02T09:12:06.343 回答