Erreur dans la bibliothèque control.h

cs_ronaldo1 Messages postés 25 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 23 juillet 2006 - 24 juin 2006 à 11:57
cs_ronaldo1 Messages postés 25 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 23 juillet 2006 - 24 juin 2006 à 12:03
J'essai de faire un petit code de rendu directshow mais le compilateur détect des erreur dans la bibliothèque control.h (issue du SDK de Directx9.0 SUMMER 2004)
Compilation...
dsdrender2.cpp
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(43) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IAMCollection'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(43) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IAMCollection'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(43) : error C2501: 'IAMCollection' : Spécificateurs de type ou de classe de stockage manquants
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(43) : error C2501: 'IAMCollection' : Spécificateurs de type ou de classe de stockage manquants
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(43) : error C2086: 'int IAMCollection' : redéfinition
        c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(43) : voir la déclaration de 'IAMCollection'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(49) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IMediaControl'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(49) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(55) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IMediaEvent'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(55) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(61) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IMediaEventEx'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(61) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(67) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IMediaPosition'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(67) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(73) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IBasicAudio'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(73) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(79) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IVideoWindow'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(79) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(85) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IBasicVideo'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(85) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(91) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IBasicVideo2'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(91) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(97) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IDeferredCommand'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(97) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(103) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IQueueCommand'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(103) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(121) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IFilterInfo'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(121) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(127) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IRegFilterInfo'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(127) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(133) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IMediaTypeInfo'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(133) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(139) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IPinInfo'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(139) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(145) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'IAMStats'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(145) : warning C4091: '' : ignoré à gauche de 'interface' quand aucune variable n'est déclarée
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(187) : error C2504: 'IDispatch' : classe de base non définie
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(194) : error C2061: erreur de syntaxe : identificateur 'IUnknown'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(197) : error C2061: erreur de syntaxe : identificateur 'IUnknown'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(313) : error C2065: 'This' : identificateur non déclaré
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(314) : error C2065: 'plCount' : identificateur non déclaré
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(314) : error C2275: 'LONG' : utilisation non conforme de ce type comme expression
        c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinNT.h(259) : voir la déclaration de 'LONG'
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(314) : warning C4229: anachronisme utilisé : modificateurs de données ignorés
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(314) : error C2078: initialiseurs trop nombreux
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(325) : error C3861: 'This': identificateur introuvable, même avec une recherche qui dépend de l'argument
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(326) : error C2062: type 'long' inattendu
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(338) : error C3861: 'This': identificateur introuvable, même avec une recherche qui dépend de l'argument
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(339) : error C2065: 'IUnknown' : identificateur non déclaré
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(339) : error C2065: 'ppUnk' : identificateur non déclaré
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(339) : warning C4229: anachronisme utilisé : modificateurs de données ignorés
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(339) : error C2078: initialiseurs trop nombreux
c:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include\control.h(365) : fatal error C1903: impossible de récupérer à partir des erreurs précédentes ; arrêt de la compilation

Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\ronaldo1\Mes documents\Visual Studio Projects\dsdrender2\Debug\BuildLog.htm"
dsdrender2 - 34 erreur(s), 17 avertissement(s)

---------------------- Terminé ----------------------

    Génération : 0 a réussi, 1 a échoué, 0 a été ignoré


Si cela peut aider voici mon code:

// dsdrender2.cpp : définit le point d'entrée pour l'application.
//

#include "stdafx.h"
#include "dsdrender2.h"
#define MAX_LOADSTRING 100
#include "control.h"
// dsdrender2.cpp : définit le point d'entrée pour l'application.
//

int main(int argc,char* argv[])
{
    IGraphBuilder    *pGraph = NULL;
    IMediaControl    *pControl = NULL;
    IMediaEvent        *pEvent = NULL;
    if (!GetMediaFileName()){ // fonction local pour prendre un nom de fichier
        return(0);
    }
// initialisation de la bibliothèque COM
    Hresult hr = CoInitializeEx(Null, COINIT_APARTMENTTHREADED);
if (FAILED(hr))
{
    //Nous allons envoyer notre message d'erreur sur la console
    printf("ERREUR - Impossible de initialiser la bibliothèque COM);
    return hr;
}
// Création de la gestion du "Filter Graph" et interroger pour des interfaces
hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,
                      IID_IGraphBuilder, (void **)&pGraph);
if (FAILED(hr)) //Failed est un macro qui test la valeur de retour
{
    printf("ERREUR - Impossible de créér la gestion du Filter Graph.");
    return hr;
}
// utilisation de IGraphBuilder::QueryInterface ( hérité d'un inconnu)
// pour avoir l'interface du IMediaControl
hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
if (failed(hr))
{
    printf("erreur - Media Control interface non obtenu.");
    pGraph->Release();
    pGraph = NULL;
    CoUninitialize(); // et initilisation COM
    return hr;
}
// et réception de l'interface evènement aussi
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
if (FAILED(hr))
{
    printf("Erreur - Impossibe d'obtenir l'interface evènement");
    pGraph->Release(); // Clean up after ourselves
    pControl->Release();
    CoUninitialize(); // et initialisation COM
    return hr;
}
    // To build the filter graph, only one call is required.
    // We make the RenderFile call to the Filter Graph Manager
    // to which we pass the name of the media file.

    // pour costruire le filter graph, un seul appel est requis.
    // nous allont fair un appel de RenderFile du Filter Graph Manager
    // pour chaqu'un nous allons passer le nom du fichier média

#ifndef UNICODE
    WCHAR wFileName[MAX_PATH];
    MultiByteToWideChar(CP_ACP, 0, g_PathFileName, -1, wFileName, MAX_PATH);
    // This is all that's required to create a filter graph
    // that will render a media file!
    
    //C'est tout ce qui est exigé pour créer un graphique de filtre 
    //C'est ce qui va faire le rendu du fichier média!

    hr = pGraph->RenderFile((LPCWSTR)wFileName, NULL);
#else
    hr = pGraph->RenderFile((LPCWSTE)g_PathFileName, NULL);
#endif
    if (SUCCEEDED(hr))
    {
        // lancement du graphe.
        hr = pControl->run();
        if SUCCEEDED(hr))
        {
            // attente pour accomplissement
            long evCode;
            pEvent->WaitForCompletion(INFINITE, &evCode);

            // Note: Do not use INFINITE in a real application 
            // because it can block indefinitely.

            //Note: Ne pas utiliser INFINITE dans vos application
            //car il peut bloquer indéfiniment 
        }
        // et arrêt du  filter graph
        hr = pControl->Stop();
        // avant de finir, nous allons sauver le graphe dans un fichier
        SaveGraphFile(pGraph, L"C:\\MyGraph.GRF");
    }
    // Nous allons tout effacer
    pControl->Release();
    pEvent->Release();
    pGraph->Release();
    CoUninitialize();

    return 0;
}


PS je compile sous VS.NET 2003

1 réponse

cs_ronaldo1 Messages postés 25 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 23 juillet 2006
24 juin 2006 à 12:03
Mince on peut pas éditer.
donc Bonjour et merci de bien vouloir m'aider ;)

PS: j'espère que mon poste du dessus est assez lisible
0
Rejoignez-nous