我在我的exe生成的调试文件夹中有Librtmp.dll。标题和辅助代码文件在我的项目中可用,包括如下所示。
使用这个包括....我可以使用libllmp和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。
Understanding typedefs for function pointers in 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 :(得分:0)
EPIC FACE PALM
最深的道歉
我的班级名为RTMP
谢谢@vard