2014-05-20 10 views
0

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); 
    } 
}; 
+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

+0

@vard Yup. J'ai essayé cela en premier. :) – WebSight

+0

@ utilisateur3494614 code complet ajouté. – WebSight

Répondre

0

EPIC VISAGE PALM

Deepest Toutes mes excuses

Ma classe est appelée RTMP

Merci @vard

Questions connexes