VS2022编译EditControls遇C1189错误求助
解决VS2022编译EditControls项目时的Error C1189问题
方案一:移除/RTCc编译选项
找不到/RTC相关选项的话,按以下步骤操作:
- 右键项目(EditCtls)→ 属性
- 展开「配置属性」→「C/C++」→「代码生成」
- 在右侧面板找到「基本运行时检查」,将当前选项改为「默认」(原选项可能是「两者(/RTC1, 等同于 /RTCsu)」或包含/RTCc的其他选项)
方案二:定义_ALLOW_RTCc_IN_STL宏
如果需要保留/RTCc选项,可通过以下步骤添加宏:
- 打开项目属性页,展开「配置属性」→「C/C++」→「预处理器」
- 在「预处理器定义」输入框中添加
_ALLOW_RTCc_IN_STL,点击「确定」保存设置
补充说明
对于C新手,更推荐方案一。/RTCc是调试阶段用于检测缓冲区溢出的选项,但它不符合C标准库的规范,移除后不会影响项目的正常编译与调试,还能彻底解决兼容性报错。
内容的提问来源于stack exchange,提问作者tmighty
相关产品推荐
相关产品推荐

