Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
746 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  MFC et Directx8, erreurs de link incompréhensibles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MFC et Directx8, erreurs de link incompréhensibles

n°395844
Alkor2001
Posté le 15-05-2003 à 19:13:00  profilanswer
 

Bonjour, j'ai un problème qui semble simple, mais que je n'arrive pas à régler...
 
Je travaille sur un programme simple qui lit un fichier MIDI grâce aux fonctions de Directx8, il fonctionne très bien tout seul.
Mais lorsque je l'intègre à une interface MFC (qui compile très bien toute seule), ça compile bien mais j'ai les erreurs de link suivantes:

Citation :

II MFCDlg.obj : error LNK2001: unresolved external symbol _CLSID_DirectMusicSegment
II MFCDlg.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicSegment8
II MFCDlg.obj : error LNK2001: unresolved external symbol _CLSID_DirectMusicPerformance
II MFCDlg.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicPerformance8
II MFCDlg.obj : error LNK2001: unresolved external symbol _CLSID_DirectMusicLoader
II MFCDlg.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicLoader8


 
Ces symboles sont définis dans dmusici.h que j'inclue bien dans le projet, et c'est pour ça que je ne comprends pas le problème...
(j'ai testé en enlevant le #include <dmusici.h>, j'ai 32 erreurs de compilation, donc ce .h est bien intégré au projet)
 
Des idées?


---------------
J'aime pas Apple...
mood
Publicité
Posté le 15-05-2003 à 19:13:00  profilanswer
 

n°395854
chrisbk
-
Posté le 15-05-2003 à 19:25:23  profilanswer
 

t'as oublié de linker avec une lib

n°395857
Alkor2001
Posté le 15-05-2003 à 19:28:47  profilanswer
 

chrisbk a écrit :

t'as oublié de linker avec une lib


 
C'est ce que j'ai pensé en effet, mais toutes les librairies sont inclues dans le projet pourtant!


---------------
J'aime pas Apple...
n°395866
chrisbk
-
Posté le 15-05-2003 à 19:34:53  profilanswer
 

liste voir ce que t'as utilisé comme lib ?

n°395877
Alkor2001
Posté le 15-05-2003 à 19:42:52  profilanswer
 

Alors les .h utilisés sont les suivants:

Citation :


#include <windows.h>
#include <dmusicc.h>
#include <dmusici.h> //c'est dans celui-là que se trouvent les symboles qu'il ne reconnait pas


 
Pour les librairies, je n'en appelle pas par leur nom, mais j'ai spécifié le chemin des librairies dans les options du projet, catégorie "input", de même que je l'ai réglé dans les options de VC++.
 
J'ai loupé quelque chose?


---------------
J'aime pas Apple...
n°395880
chrisbk
-
Posté le 15-05-2003 à 19:45:04  profilanswer
 

je crois bien, si g bien compris ce que tu as fait  
d'inclure les libs
project->settings->linker->input
la tu mets les libs dont tu as besoin (regarde dans ton rep de dx\libs, doit avoir dmusic8.lib ou des trucs comme ca, tu balances)

n°395895
Alkor2001
Posté le 15-05-2003 à 19:50:42  profilanswer
 

Y a pas de dmusic.lib, le seul .lib qui se reporte au son c'est dsound.lib...  
J'ai essayé en spécifiant directement ce nom au lieu du répertoire complet, mais ça ne change rien...
 
Mais comment ça se fait qu'un projet comprenant juste le programme jouant le MIDI fonctionne parfaitement, et que quand j'inclue ce programme à l'interface MFC ça plante comme ça???
 
En tout cas merci de m'aider!   :hello:


---------------
J'aime pas Apple...
n°395901
chrisbk
-
Posté le 15-05-2003 à 19:53:25  profilanswer
 

dmoguids.lib
dxguid.lib
 
roh pis tu mets tout pis vala [:dawa]
 
 
ben si il a pas les bonnes libs c normal que ca merde. si t'as le projet de l'autre programme, regarde quelles libs il inclue

n°395905
Konar
Posté le 15-05-2003 à 19:54:55  profilanswer
 

Alkor2001 a écrit :


Mais comment ça se fait qu'un projet comprenant juste le programme jouant le MIDI fonctionne parfaitement, et que quand j'inclue ce programme à l'interface MFC ça plante comme ça???
 


 
je serais un gro konar je dirais ke c'est la faute aux mfc, mais sur ce coup la je dirais plutot ke c'est toi ki rates fort.
 
regardes toutes les libs incluses dans ton projet d'origine (dans les propriétés du proj, pragma comment(), ou autres), y en a forcement une que t'as oublié de mettre ds le nouveau proj...

n°395907
Alkor2001
Posté le 15-05-2003 à 19:55:35  profilanswer
 

Ok merci je teste ça... Mais le projet de l'autre programme c'est moi qui l'ai fait et je n'ai inclu aucune librairie directement...
J'ai juste spécifié le répertoire où elles étaient toutes, comme je l'ai fait pour le projet MFC...
 
EDIT: Même en spécifiant le nom de toutes les librairies manuellement, ça change rien... Vous êtes certains que le problème vient de là? Les symboles non reconnus appartiennent à un .h qui est bien inclu, qu'est ce que les .lib viennent faire la dedans? (oui je sais je ne connais pas grand chose en C++)


Message édité par Alkor2001 le 15-05-2003 à 20:00:39

---------------
J'aime pas Apple...
mood
Publicité
Posté le 15-05-2003 à 19:55:35  profilanswer
 

n°396029
Alkor2001
Posté le 15-05-2003 à 21:19:48  profilanswer
 

Konar a écrit :


 
regardes toutes les libs incluses dans ton projet d'origine (dans les propriétés du proj, pragma comment(), ou autres), y en a forcement une que t'as oublié de mettre ds le nouveau proj...


 
Tu pourrais préciser s'il te plait?


---------------
J'aime pas Apple...
n°396051
Alkor2001
Posté le 15-05-2003 à 21:48:00  profilanswer
 

Bon bah en faisant une recherche sur pragma comment (que je connaissais pas) j'ai résolu mon problème!
 

Citation :

#pragma comment(lib, "dsound.lib" );
#pragma comment(lib, "dmoguids.lib" );
#pragma comment(lib, "dxguid.lib" );


 
Merci à tous!!!!    :jap:


---------------
J'aime pas Apple...
n°405655
rufo
Pas me confondre avec Lycos!
Posté le 23-05-2003 à 11:10:14  profilanswer
 

Moi aussi j'ai le pb pour compiler du DirectX 5 sous VC++ 5.0. Pourtant, j'ai bien spécifié les chemins de DirectX (les includes et lib) en tête de liste, et ben ça compilait, mais ça linkait pas :(. Je vais aussi essayé la solution proposée.

n°405956
Alkor2001
Posté le 23-05-2003 à 14:05:31  profilanswer
 

Et ça ne marche pas, même avec le pragma comment?
 
Et tu as bien réglé VC++ pour aller chercher les includes et les libs où il faut?
(c'est dans les options de VC++)


---------------
J'aime pas Apple...
n°406059
theshockwa​ve
I work at a firm named Koslow
Posté le 23-05-2003 à 14:50:53  profilanswer
 

Ca peut paraître con, mais tu as bien ajouté les libs à linker dans la liste ("settings" sur ton projet, onglet link ... A mettre pour la config de debug ET la config de release !)
Il va pas les chercher tout seul, Visual ... :D


---------------
last.fm
n°406080
VisualC++
J'va y penser ...
Posté le 23-05-2003 à 14:59:29  profilanswer
 

Ouep pareil c t la question que j allais pose.
C est bien beau de donner le path , mais si on lui dit pas qu elle lib linker il le devinera pas.
 
Perso ca marche sans pragma la compil en indiquant le path correctement et les libs que j ai besoin suivant les applis (d3D ou ddraw par exemple)

n°406225
H4dd3R
Q2
Posté le 23-05-2003 à 15:50:03  profilanswer
 

Je crois que j'ai eu le même pb pour le link d'une application dshow..
En fait j'ai du compiler les basesclasses (c'est étrange mais vrai: elles sont dans samples, dshow) et linker avec les résultat.. :)
 
Bonne chance c très merdique..


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°406228
theshockwa​ve
I work at a firm named Koslow
Posté le 23-05-2003 à 15:53:06  profilanswer
 

H4dd3R a écrit :

Je crois que j'ai eu le même pb pour le link d'une application dshow..
En fait j'ai du compiler les basesclasses (c'est étrange mais vrai: elles sont dans samples, dshow) et linker avec les résultat.. :)
 
Bonne chance c très merdique..


 
Pareil ... Mais en fait, apparamment, ils supposent qu'on peut refaire tout ce qui se trouve dans les baseclasses ...


---------------
last.fm
n°407065
rufo
Pas me confondre avec Lycos!
Posté le 25-05-2003 à 14:45:08  profilanswer
 

Bizarrement, j'arrivais à compiler un prgm directX mais pas celui que j'étais en train de faire. Une des principales différences entre les 2 codes, c'était que le mien disposait un fichier resource (la fiche principale de mon appli + une icône). Je sais pas si c'est ça qui empêchait de compiler mais grâce à pragma comment, ça marche maintenant :) Merci...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  MFC et Directx8, erreurs de link incompréhensibles

 

Sujets relatifs
[MFC] [resolu] virer la toolbar[MFC] stopper le pgm (sleep, delay) :??:
[MFC]Fichiers ini et cast intempestifs[MFC] Utiliser les SpinButtonCtrl [résolu, solution inside]
[MFC] Reperer qu'une fenetre a le focusGerer les erreurs 404 en php
[C++ et MFC] fichier ini[MFC VC++ 6] bulles sur les trayicons
[MFC - soluce inside] disabler un edit depuis le programme[MFC/C++] Créer un menu+gérer les évenements du menu [résolu]
Plus de sujets relatifs à : MFC et Directx8, erreurs de link incompréhensibles


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR