_snprintf не был объявлен в этой области

0

Я работаю над проектом ffmepg c++, который связывает файл hpp в файле 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++, у меня есть stdio.h и cstdio как внутри extern C, так и вне extern C, но ошибка продолжает проявляться. В чем проблема? Как это исправить?

Теги:
ffmpeg
printf

1 ответ

4
Лучший ответ

Сначала измените эту строку

include <assert.h>

с:

#include <assert.h>

и напишите эту строку

#define snprintf _snprintf

после включает и пытается компилировать код

Ещё вопросы

Сообщество Overcoder
Наверх
Меню