cs_ronaldo1
Messages postés25Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention23 juillet 2006
-
24 juin 2006 à 11:57
cs_ronaldo1
Messages postés25Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention23 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;
}