VS2012 LibRTMP включает c в c ++

0

У меня есть Librtmp.dll в папке отладки, где генерируется мой exe. Файлы заголовков и вспомогательных кодов доступны в моем проекте и включены, как показано ниже.

Используя это, я могу использовать librtmp с intellisense.

extern "C" {
    #include "libavcodec/avcodec.h"
    #include "libavdevice/avdevice.h"
    #include "libavfilter/avfilter.h"
    #include "libavformat/avformat.h"
    #include "libavutil/avutil.h"

    #include "librtmp/rtmp.h"
}

Вот пример кода, который используется.

RTMP *r;
char uri[]="rtmp://localhost:1935/live/desktop";
r = RTMP_Alloc();
RTMP_Init(r);
RTMP_SetupURL(r, (char*)uri);
RTMP_EnableWrite(r);
RTMP_Connect(r, NULL);
RTMP_ConnectStream(r,0);

VS2012

IntelliSense: аргумент типа "RTMP *" несовместим с параметром типа "RTMP *"

Это происходит сначала. Затем еще раз, для каждой последующей переменной r.

r = RTMP_Alloc();

В некотором чтении предлагается использовать typedef.

Понимание typedefs для указателей функций в C

Это приводит к...

typedef (RTMP *) (RTMP * rtmp);

Тем не менее, Visual Studio просто рассмеялась надо мной... покачала головой, задаваясь вопросом, знаю ли я, что я делаю.

IntelliSense: объявление члена с тем же именем, что и его класс

Любые подсказки или идеи были бы полезны.

Спасибо.

ОБНОВЛЕНИЕ - ПОЛНЫЙ КОД

extern "C" {
    #include "libavcodec/avcodec.h"
    #include "libavdevice/avdevice.h"
    #include "libavfilter/avfilter.h"
    #include "libavformat/avformat.h"
    #include "libavutil/avutil.h"
}

#include "librtmp/rtmp.h"
class RTMP
{
    RTMP()
    {
    }
    ~RTMP()
    {
    }
    typedef (RTMP*)(RTMP* rtmp);
    void RTMP::Run()
    {
            //Code
        //Init RTMP code
        RTMP *r;
        char uri[]="rtmp://localhost:1935/live/desktop";
        r = RTMP_Alloc();
        RTMP_Init(r);
        RTMP_SetupURL(r, (char*)uri);
        RTMP_EnableWrite(r);
        RTMP_Connect(r, NULL);
        RTMP_ConnectStream(r,0);
    }
};
  • 0
    Первое предложение не всегда доверяет intellisense optput, это всего лишь указание на то, что со мной случается много раз, что есть некоторые предупреждения intellisense об ошибках, но когда я начинаю сборку, это происходит успешно. Также я вижу, что заголовок для RTMP, который вы включили, имеет связь с C, так что это структура C, а код, который вы делаете, - C ++, поэтому структура со связью C отличается от структуры в C ++. Это может быть ошибкой, но было бы хорошо, если бы вы могли дать больше о коде.
  • 0
    @ Вард Да. Попробовал сначала. :)
Показать ещё 2 комментария
Теги:
visual-studio-2012

1 ответ

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

EPIC FACE PALM

Самые глубокие извинения

Мой класс называется RTMP

Спасибо @vard

Ещё вопросы

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