gpt4 book ai didi

c++ - “_snprintf”未在此范围内声明

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:15 24 4
gpt4 key购买 nike

我正在开发一个链接 hpp 文件的 ffmepg C++ 项目,在 hpp 文件中:

#define snprintf _snprintf
#include <stdio.h>
#include <cstdio>
#include <unistd.h>
include <assert.h>

#if defined _MSC_VER && _MSC_VER >= 1200
#pragma warning( disable: 4244 4510 4512 4610 4146 4996 4005)

#define sprintf sprintf_s
#define _sprintf _sprintf_s
#define _snprintf _snprintf_s

#endif


snprintf (oc->filename, sizeof(oc->filename), "%s", filename);

它给出了错误:

‘_snprintf’ was not declared in this scope

很奇怪,错误显示'_snprintf',而我使用的是'snprint'。这段代码是别人写的,他用的这些#define我没看懂。如果我删除行 #define sprintf sprintf_s,它给出错误:

segmentation fault(core dumped)

由于 ffmpeg 与 C++ 不兼容,我在 extern C 之外都包含了 stdio.hcstdio>extern C,但错误继续显示。问题是什么?如何解决?

最佳答案

首先改变这一行

include <assert.h>

与:

#include <assert.h>

并写下这一行

#define snprintf _snprintf

包含并尝试编译代码之后

关于c++ - “_snprintf”未在此范围内声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29236002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com