我和其他几千人收到 Microsoft Visual C++ 运行时抛出的错误:
为了搜索引擎的利益,说:
Microsoft Visual C++ Runtime Library
Buffer overrun detected!
Program: %s
A buffer overrun has been detected which has corrupted the program's
internal state. The program cannot safely continue execution and must
now be terminated.
现在我明白了缓冲区溢出是什么,以及为什么它是一件坏事。鉴于微软新强调“它刚刚坏了”, MSVCRT中的额外缓冲区检查可能是一件好事。
另一方面,我不在乎。不是程序不能继续,而是程序不能安全地继续。好吧,我宁愿不安全,因为它总比没有好。我喜欢危险地生活。
那么任何人都可以提出任何建议吗?我在想这样的事情:
- 防止 MSVCRT 停止执行的注册表项
- 在与以前的操作系统(Windows 7 之前)兼容的情况下运行应用程序
- 将程序集清单添加到可执行文件夹,以便它使用旧版本的 MSVCRT,它不执行此溢出检查
- 没有溢出检查的 MSVCRT 副本的版本号或下载位置
我尝试搜索编写Microsoft Visual C++ 运行时库的公司的支持站点,但他们没有提及哪些函数可能溢出,或者如何禁用溢出检查。