【问题标题】:Tesseract baseapi error: 'strncpy':this function or variable may be unsafe. Consider using strncpy_s insteadTesseract baseapi 错误:“strncpy”:此函数或变量可能不安全。考虑改用 strncpy_s
【发布时间】:2026-01-08 14:20:03
【问题描述】:

当我在 Visual Studio 2012 中使用以下内容时出现上述错误(我使用的是 C++):

#include <tesseract\baseapi.h>

谁能解释一下可能出了什么问题?

【问题讨论】:

    标签: c++ visual-studio ocr tesseract


    【解决方案1】:

    默认情况下不推荐使用非安全 CRT 函数。您可以通过定义宏 _CRT_SECURE_NO_WARNINGS 重新启用它们。试试 -

    #define _CRT_SECURE_NO_WARNINGS
    #include <tesseract\baseapi.h>
    

    或者将宏添加到项目属性列表中。阅读 MSDN 上的文章 Eliminating Deprecation Warnings

    来自文章-

    有多种方法可以消除针对较旧、安全性较低的功能的弃用警告。最简单的方法是简单地定义 _CRT_SECURE_NO_WARNINGS 或使用警告编译指示。两者都将禁用弃用警告,但当然导致警告的安全问题仍然存在。最好启用弃用警告并利用新的 CRT 安全功能。

    【讨论】:

    • 我将它添加到文件的开头。仍然给出同样的错误。
    • 您是否在 VS 中设置了将警告视为错误的选项?以及设置的警告级别是多少?
    • 有同样的错误,我不将警告视为错误,我用所有警告级别对其进行了测试。有什么建议吗?
    • 了解它是如何工作的:属性 -> C/C++ --> 常规 --> SDL 检查 --> 否