[Visual C++] / problème de linkage...

/ problème de linkage... [Visual C++] - Programmation

Marsh Posté le 06-02-2002 à 13:35:48    

bonjour à tous !
 
voilà, si je post ce message c vraiment paske j'ai cherché pas mal de temps et que je trouve pas. J'ai écris un prog en VC++ qui joue et capture des vidéos... jusque là pas de probs !
tout fonctionnait nickel jusqu'à ce que jecrée une nouvelle fonction qui maniple des AM_MEDIA_TYPE* .. pour gérer ces structure (allocation, destruction et autre) il faut faire appel à des fonctions qui nécessite de linker strmbase.lib (ou strmbasd.lib en mode debug). J'ai pû compiler (au passage j'ai dû passer en compilation Multithread DLL sinon yavé pas moyen de compiler à cause de divers pbs de linkage) et ça fonctionnait bien sauf que lorsque j'ai voulu inclure ce prog dans un activeX (en fait j'ai implémenter le player et la capture sous forme de classe donc c très simple à porter en activeX) j'ai eu un pb de linkage dont je n'arrive pas à me débarraser (pourtant j'ai inclu les mêmes libs que dans l'applic):  
"
Linking...
   Creating library Release/PascalPlayer.lib and object Release/PascalPlayer.exp
strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)
Release/PascalPlayer.ocx : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
 
PascalPlayer.ocx - 3 error(s), 0 warning(s)
"
 
Je n'avais donc pas le pb avant de devoir inclure cette foutu lib (strmbase.lib) dans l'ActiveX. Je ne trouve nulle part la déclaration de la classe CFactoryTemplate  (je sais que c une classe de DirectShow)... que dois-je faire poure résoudre le pb ??
 
merci d'avance !!

Reply

Marsh Posté le 06-02-2002 à 13:35:48   

Reply

Marsh Posté le 06-02-2002 à 14:08:26    

Hehe j´ai déjà posé la même question..
 
Apparemment pas de solution.. Sur les newsgroup ya plein de monde qui pose la même, mais aucune réponse!! ;)
 
Le dernier état de discussion que j´ai c sur microsoft.public.win32.programmer.directx.video, regarde le thread DShow in an OCX (de moi).
 
En tt cas moi je trouve ça rageant, ça marche partout sauf dans un ActiveX ce link!!   :na:


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
Reply

Marsh Posté le 06-02-2002 à 14:45:50    

attends tu veux dire qu'il y a pas de solutions ?? c pas possible ! on peut forcément faire kkchose !! moi j'ai besoin de cette lib dans mon activeX, je peux pas m'en passer !

Reply

Marsh Posté le 06-02-2002 à 14:53:12    

épi j'ai pas de lecteur de news :( ...
comment tu as fait toi si'il n'y a pas de solutions, tu as dû t'en passer ??

Reply

Marsh Posté le 06-02-2002 à 15:03:52    

c bon j'ai trouvé (merci les groups google) !!!
 
voilà si ça peut t'aider t'inclu ça dans ton code et ça devrai fixer le pb...
 
/////////////////////////////////////////////////////////////////////////////
// DllGetClassObject
 
extern "C"
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());
 return AfxDllGetClassObject(rclsid, riid, ppv);
}
 
/////////////////////////////////////////////////////////////////////////////
// DllCanUnloadNow
 
extern "C"
STDAPI DllCanUnloadNow(void)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());
 return AfxDllCanUnloadNow();
}
"

Reply

Marsh Posté le 06-02-2002 à 15:26:37    

Tu as testé cette solution??
 
Car j´ai eu pas mal de solutions foireuses ds les newsgr-google.. ;)

Reply

Marsh Posté le 06-02-2002 à 16:32:13    

oui oui ça marche nickel (je comprend pas pourkoi mais je m'en fous :D ) !!

Reply

Marsh Posté le 06-02-2002 à 16:40:54    

Argh je suis dégouté: ça fait des semaines que j´épluche les newsgroups sans trouver de solution qui marche!!  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed