IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

probleme de compilatiion de filtre perso


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut probleme de compilatiion de filtre perso
    bonjour
    je vous ecris ce message de secours avec pour m aider a resoudre un gr probleme
    j ai ecris un filtre d envoie de video d une pda vers un pc mais quand je compile j ai des erreurs qui me derange tellement
    C:\Users\losers\Pictures\problm.jpeg

    Erreur 1 error C2146: syntax error : missing ';' before identifier 'PVOID64' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h


    Erreur 18 error C2078: too many initializers c:\users\losers\desktop\my filtre\filter\filter\enregifiltre.cpp

    bon 2 header qui me pose problem c est enregifiltre.cpp et winnt.h

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    bon je explique
    le code suivant represente un filtre d emission
    //////////////////////////////////////////////////
    NetworkSenderFilter.h
    //////////////////////////////////////////////////

    #pragma once
    #include <streams.h>
    #include<initguid.h>

    DEFINE_GUID(CLSID_NETWORKSENDERFILTER,0xa6be6307, 0x9834, 0x4650, 0xbd, 0x22, 0xd0, 0x35, 0x2a, 0x75, 0xba, 0x5c);
    DEFINE_GUID(IID_IDSNetSender,0xa6be6307, 0x9834, 0x4650, 0xbd, 0x22, 0xd0, 0x35, 0x2a, 0x75, 0xba, 0x5c);
    class CNetworkSenderFilter :public CBaseRenderer
    {
    DECLARE–IUNKNOWN;

    HRESULT CheckMediaType( const CMediaType *pmt );
    HRESULT DoRenderSample( IMediaSample *pMediaSample );


    STDMETHODIMP SetSocket( SOCKET sock );


    public:
    CNetworkSenderFilter(IN TCHAR *tszName, IN LPUNKNOWN pUnk, OUT HRESULT *phr);
    ~CNetworkSenderFilter(void);
    static CUnknown * CreateInstance(LPUNKNOWN pUnk , HRESULT * pHr);
    private:
    SOCKET m_sock;
    CCritSec m_Lock;
    };
    ///////////////////////////////////////////////////////////////////////
    NetworkSenderFilter.cpp
    //////

    #include "NetworkSenderFilter.h"
    #include <streams.h>




    CNetworkSenderFilter::CNetworkSenderFilter(TCHAR *tszName, LPUNKNOWN pUnk, HRESULT *phr):CBaseRenderer( CLSID_NETWORKSENDERFILTER, tszName, pUnk, phr ),IDSNetSender()
    {
    m_sock = NULL;


    }

    CNetworkSenderFilter::~CNetworkSenderFilter(void)
    {
    }


    CUnknown * CNetworkSenderFilter::CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr)
    {
    *pHr = S_OK;//initialise le pointeur hresult
    CNetworkSenderFilter *filter = new CNetworkSenderFilter(NAME("CNetworkSenderFilter"), pUnk, pHr);
    if (!filter)
    *pHr = E_OUTOFMEMORY;
    return filter;
    }


    HRESULT CNetworkSenderFilter:oRenderSample( IMediaSample*pMediaSample ) {
    BYTE* data = NULL;
    long length = 0;
    CheckPointer(pMediaSample,E_POINTER);
    pMediaSample->GetPointer(&data);//l echantillon est encaissé
    length = pMediaSample->GetSize();
    send(m_sock,(char*)data,length,0);

    return S_OK;
    }



    HRESULT CNetworkSenderFilter::CheckMediaType( const CMediaType *pmt ) {
    return S_OK;
    }

    /****************methode de l interface**************/
    HRESULT CNetworkSenderFilter::SetSocket(SOCKET thesock) //chge type en STDMETHODIMP et le return return NOERROR;
    {
    CAutoLock cal(&m_Lock);
    m_sock = thesock;
    return S_OK;
    }

    /////////////////////////////////////////////
    enregifiltre.cpp
    /////////////////////////////////////////////

    #include "NetworkSenderFilter.h"
    static WCHAR g_wszName[] = L"Epstone Network Sender Filter";//nom du filter
    // Setup information
    const AMOVIESETUP_MEDIATYPE sudPinTypes ={&MEDIATYPE_NULL, // Major type
    &MEDIASUBTYPE_NULL // Minor type
    };

    // Description des pins(un pin)
    const AMOVIESETUP_PIN sudpPins[] ={{ L"Input", /* Pins string name*/FALSE, /* Is it rendered*/FALSE, /*Is it an output*/FALSE, /*Are we allowed none*/FALSE, /*And allowed many*/&CLSID_NULL, /* Connects to filter*/NULL, /*Connects to pin*/1, /* Number of types*/&sudPinTypes /* Pin information*/}};

    // Informations pour l'enregistrement du filtre
    const AMOVIESETUP_FILTER sudSender ={&CLSID_NETWORKSENDERFILTER/* Filter CLSID*/, g_wszName/* filtre name*/,MERIT_DO_NOT_USE/*Filter merit*/,1/* Number of pins*/, sudpPins /* Pin information*/};


    //DllRegisterServer: Fonction appelée pour l'enregistrement
    // (appelée par regsrv32 par exemple ...)
    STDAPI DllRegisterServer()
    {
    return AMovieDllRegisterServer2(TRUE);
    }

    STDAPI DllUnregisterServer()
    {
    return AMovieDllRegisterServer2(FALSE);
    }
    extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);

    BOOL WINAPI DllMain(HANDLE hDllHandle, DWORD dwReason, LPVOID lpReserved)
    {
    return DllEntryPoint(reinterpret_cast<HINSTANCE>(hDllHandle), dwReason, lpReserved);
    }
    ///////////////////////////////////////////////
    bon qd je compile ce projet il me donne les erreur svt

    Erreur 1 error C2146: syntax error : missing ';' before identifier 'PVOID64' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h 222
    Erreur 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h 222
    Erreur 3 error C2146: syntax error : missing ';' before identifier 'Buffer' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h 5940
    Erreur 4 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h 5940
    Erreur 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h 5940
    Erreur 6 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\imagine\extras\directshow\samples\c++\directshow\baseclasses\ctlutil.h 278
    Erreur 7 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\losers\desktop\my filtre\filter\filter\networksenderfilter.h 9
    Erreur 8 error C2614: 'CNetworkSenderFilter' : illegal member initialization: 'IDSNetSender' is not a base or member c:\users\losers\desktop\my filtre\filter\filter\networksenderfilter.cpp 8
    Erreur 9 error C2146: syntax error : missing ';' before identifier 'PVOID64' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h 222

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut si vous avez besoin d aide contactez....
    bon j ai trouvé une solutoin pur corriger mes erreurs
    c est l ordre des link indique au visual il faut indiquer les lien menant a l sdk de directx ou show en dernier
    bon now il me reste que cette erreur
    Erreur 1 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\imagine\extras\directshow\samples\c++\directshow\baseclasses\ctlutil.h 278
    Erreur 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\imagine\extras\directshow\samples\c++\directshow\baseclasses\ctlutil.h 278


  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    je progresse tjr heureusement
    bon j ai resolu prblme winnt.h
    en remplaceant
    operator=(LONG);
    par
    COARefTime& operator=(LONG);
    maintenant j ai q une erreur c est can't open strmbasd.lib
    avez v une idee

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 41
    Par défaut
    bonjour
    j ai resolu le problem de strmbasd (par une compilation des baseclasses)
    mais qd je compile
    voici resultat
    Erreur 1 error LNK2001: unresolved external symbol _CLSID_NETWORKSENDERFILTER NetworkSenderFilter.obj
    Erreur 2 error LNK2019: unresolved external symbol _send@16 referenced in function "private: virtual long __thiscall CNetworkSenderFilter:oRenderSample(struct IMediaSample *)" (?DoRenderSample@CNetworkSenderFilter@@EAEJPAUIMediaSample@@@Z) NetworkSenderFilter.obj
    Erreur 3 error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A) strmbasd.lib
    Erreur 4 error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A) strmbasd.lib
    Erreur 5 error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA) strmbasd.lib
    Erreur 6 error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA) strmbasd.lib
    Erreur 7 fatal error LNK1120: 4 unresolved externals C:\Users\losers\Desktop\my filtre\filter\Debug\filter.dll

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Salut.

    Pour le send, il te faut les librairies "winsock". Il te faut implémenter DoRenderSample. Il te faut un CLSID et il doit te manquer des "extern" dans tes fichiers.

Discussions similaires

  1. probleme affichage page sur site perso
    Par jeanbi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/09/2012, 18h23
  2. [1.x] Filtre perso pour admin généré
    Par eckerdecker dans le forum Symfony
    Réponses: 1
    Dernier message: 08/12/2009, 14h25
  3. Probleme avec utilisation des filtres et des modeles
    Par Djolhan dans le forum Thunderbird
    Réponses: 0
    Dernier message: 08/04/2009, 22h30
  4. [JXTable] Probleme lors d'insert filtres
    Par rednik dans le forum Composants
    Réponses: 1
    Dernier message: 07/01/2009, 12h53
  5. [Control] Problemes de scintillement sur control perso
    Par Clorish dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/07/2005, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo