Bonjour,
J'ai une classe pour lire des avi avec vfw.h.
Je l'ai fait fonctionner avec Borland C++ Builder 6 et wxDevcpp.
Elle m'avait jamais posé de problème.
J'arrive à la compiler sous VS 2005 en C++.NET. Mais, à l'exécution, la fonction "AVIFileOpen" me retourne l'erreur "REGDB_E_CLASSNOTREG" dont la msdn donne la définition suivante :
Je ce que j'ai compris à ceci, c'est qu'il manque l'info, dans la base de registre, pour qu'il puisse ouvrir l'avi. C'est bien ça ?According to the registry, the type of file specified in AVIFileOpen does not have a handler to process it.
Or, sur le même PC et avec la même classe j'arrive à ouvrir un AVI avec un exe compilé avec wxDevcpp par exemple. Pourquoi dans un cas y aurait l'info dans la base de registre et dans l'autre non ?
Par ailleurs j'utilise la fonction "AVIFileOpen" avec l'argument "pclsidHandler" égal à NULL. Argument décrit par la msdn :
J'en déduis qu'il faut peut-être mettre un Handler non nul de façon à préciser moi-même avec quoi ouvrir le avi.Pointer to a class identifier of the standard or custom handler you want to use. If the value is NULL, the system chooses a handler from the registry based on the file extension or the RIFF type specified in the file.
J'ai essayé pleins de trucs (ya pas bcp d'aide dessus) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CLSID z; z.Data1 = 0; z.Data2 = 4; z.Data3 = 0; *(z.Data4) = MKFOURCC('i', 'a', 'v', 's');Toujours la même erreur. Quelqu'un à une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CLSID z; z.Data1 = 'i'; z.Data2 = 'a'; z.Data3 = 'v'; *(z.Data4) = 's';
Merci.
Flo.
PS : Sur mon PC (Win2000), j'ai "VLC Player", "Windows Media Player" et "DirectX9" (si ça peut aider)
Partager