MFC et Directx8, erreurs de link incompréhensibles - C++ - Programmation
Marsh Posté le 15-05-2003 à 19:28:47
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!
Marsh Posté le 15-05-2003 à 19:42:52
Alors les .h utilisés sont les suivants:
Citation : |
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?
Marsh Posté le 15-05-2003 à 19:45:04
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)
Marsh Posté le 15-05-2003 à 19:50:42
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!
Marsh Posté le 15-05-2003 à 19:53:25
dmoguids.lib
dxguid.lib
roh pis tu mets tout pis vala
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
Marsh Posté le 15-05-2003 à 19:54:55
Alkor2001 a écrit : |
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...
Marsh Posté le 15-05-2003 à 19:55:35
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++)
Marsh Posté le 15-05-2003 à 21:19:48
Konar a écrit : |
Tu pourrais préciser s'il te plait?
Marsh Posté le 15-05-2003 à 21:48:00
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" ); |
Merci à tous!!!!
Marsh Posté le 23-05-2003 à 11:10:14
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.
Marsh Posté le 23-05-2003 à 14:05:31
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++)
Marsh Posté le 23-05-2003 à 14:59:29
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)
Marsh Posté le 23-05-2003 à 15:50:03
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..
Marsh Posté le 23-05-2003 à 15:53:06
H4dd3R a écrit : Je crois que j'ai eu le même pb pour le link d'une application dshow.. |
Pareil ... Mais en fait, apparamment, ils supposent qu'on peut refaire tout ce qui se trouve dans les baseclasses ...
Marsh Posté le 25-05-2003 à 14:45:08
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...
Marsh Posté le 15-05-2003 à 19:13:00
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:
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...