在 Visual Studio 中关闭运行时检查
Switch off Run-Time check in Visual Studio
我遇到了问题,在Visual C++ 2008中由于将太大的数字转换为较小的类型而导致运行时检查失败。故障出在外部dll中,所以我无法在那里修复它。那么如何关闭外部项目的运行时检查。
如果转换(和检查)发生在无法重新编译的 DLL 中,则无法轻松关闭检查。
您唯一能做的就是更改传递给DLL的数据以避免出现问题。 或者修补二进制文件以禁用检查,这可能不会非常困难 - 你对反汇编器很好吗?
运行时检查取决于/RTC c c 能够在项目的 Visual Studio 配置属性、C/C++ 代码生成、"较小类型检查"中找到的选项。您应该关闭此功能,然后重新编译。
您始终可以在项目设置中关闭投射到较小类型检查。
如果在将检查编译到 dll 中时不起作用,则可以尝试链接到非调试版本 dll,因为检查只能针对调试"优化"构建打开。当然,这可能会影响您的调试。
相关文章:
- 在运行时检查继承是否只有一种类型和 void*
- 运行时检查失败 #2 变量"A"周围的堆栈已损坏
- 运行时检查失败 #0 用于运行时重新编译
- 运行时检查失败 #2 - 变量"e"周围的堆栈已损坏。发生
- 运行时检查失败 #2 MSVC 仅使用 utf8proc 进行调试
- std::copy 导致运行时检查失败 #2
- 运行时检查失败 #2 - 变量周围的堆栈'...'已损坏
- 积分转换的运行时检查
- 运行时检查失败 #2 - 变量"l1"周围的堆栈已损坏
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 运行时检查失败 - 变量周围的堆栈已损坏
- swscanf_s - 运行时检查错误
- 动态强制转换的运行时检查
- 运行时检查实例 (Base*) 是否覆盖父函数 (Base::f())
- 如何在 Linux 运行时检查堆栈使用情况?
- 调试:运行时检查失败 #2 - 变量"LoggerThread"周围的堆栈已损坏
- 运行时检查失败 #2 - 变量周围的堆栈'k'已损坏
- 运行时检查失败 #2 - 变量"数字选择"周围的堆栈已损坏
- 可以在编译时或运行时检查STD ::对齐的限制
- 如何避免对编译后无法访问的正在运行的代码部分进行运行时检查?