我和几千其他人一起,遇到了由Microsoft Visual C++ Runtime引发的错误:
为了搜索引擎的效益,需要说明:
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 ++运行库的公司的支持站点,但未提到哪些函数可能会溢出,或如何禁用溢出检查。