J'ai Librtmp.dll dans le dossier de débogage où mon exe est généré. Les fichiers d'en-tête et de code auxiliaire sont disponibles dans mon projet et inclus comme indiqué ci-dessous. En utilisant cela include .... je peux utiliser librtmp avec intellisense.VS2012 LibRTMP inclure c en C++
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"
}
Voici l'exemple de code en cours d'utilisation.
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: argument de type "RTMP *" est incompatible avec le paramètre de type "RTMP *"
Cela se produit à ce premier point. Puis encore une fois, pour chaque variable r suivi.
r = RTMP_Alloc();
Certaines lectures ont suggéré d'utiliser un typedef.
Understanding typedefs for function pointers in C
Cela a conduit à ...
typedef (RTMP *) (* RTMP RTMP); Cependant, Visual Studio a juste ri de moi ... secouant la tête se demandant si je savais même ce que je faisais.
IntelliSense: déclaration d'un membre du même nom que sa classe
Les indices ou idées seraient utiles.
Merci.
MISE À JOUR - CODE COMPLET
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);
}
};
Première suggestion ne pas toujours confiance optpsense optput ils sont juste indication qu'il se passe avec moi beaucoup de ti moi qu'il y a quelques avertissements d'erreur d'intellisense mais quand je commence à construire il obtient réussi. De plus, je peux voir que l'en-tête pour RTMP que vous avez inclus reçoit un lien C donc c'est une structure C et le code que vous faites est C++ alors struct avec C linkage est différent d'une structure en C++. Cela pourrait être l'erreur, mais ce serait bien si vous pouvez donner plus sur le code. – user3494614
@vard Yup. J'ai essayé cela en premier. :) – WebSight
@ utilisateur3494614 code complet ajouté. – WebSight