IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

Problemes de compilations exemple createdevice.cpp de Direct


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut Problemes de compilations exemple createdevice.cpp de Direct
    Apres de nombreuses années d'abandon de la programmation a cause de DirectX (Jamais reussi a compiler les exemples de DirectX, a causes de problemes divers , c'est pourquoi je n'aime pas DirectX), j'ai voulu m'y remettre avec l'espoir que cela fonctionnerai enfin. Malheureusement,
    c'est desesperant. Le plus bete et le plus simple des demos de DirectX SDK ne fonctionne pas

    J'utilise le compilateur en ligne de commande (pas la version 5.5) et les parametres sont correct dans un fichier brcc32.cfg.
    La compilation s'effectue normalement avec BCC32 version 5.6.4 a part les warning habituelles.
    C'est ILink32 v5.65 qui pose probleme.
    Le code d'erreur est "unresolved external Direct3DCreate9 referenced from CreateDevice.obj"

    Je ne comprend donc pas pourquoi la creation de l'executable echoue pour un programme aussi bête.
    Puisque les paths, les objets, les includes, ect... est trouver et utiliser, normalement il n'y devraient n'y avoir aucune erreur !
    Est-ce un bug du compilateur ? Comme celui de l'include strsafe.h qui dit de declarer une bibliotheque inexistante pour eviter les inline ?

    - 1 J'ai copier toutes les libs DirectX 9.0 de Borland dans mon repertoire lib.
    - 2 Tout les paths sont correct et les includes de DirectX sdk 9.0 ont ete egalement copier.
    -3 DirectX 9 s'est installer correctement.

    Pourquoi la demo de chez MS ne fonctionne pas ?
    MS-VC et BB-C++ sont tout deux des compilateurs C++, il ne devrait donc y avoir aucun probleme !

    Si quelqu'un peut m'aider, ce serai sympa.

    Aujourd'hui, depuis l'arrivee de Windows la programmation en C, C++ ou Pascal est devenue si compliquer que c'est un vrai casse-tete juste pour afficher une simple page graphique comme DirectX.
    Domage que Windows ne soit pas aussi facile a programmer que ce bon vieux Dos.

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Tu peux te diriger aussi sur le forum dédié "DirectX" ce sera peut-être plus sûr.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre confirmé Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par défaut Compilation
    Bonjour,
    Essais d'inclure le .lib dans les propriétés du projet. MSDN donne le .lib concerné dans lequel ta fonction est déclarée.
    Jag

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut
    Bonjour Jagboys,

    Je n'utilise pas Microsoft Visual C mais Borland Cpp version 5.6.4 en ligne de commande.

    Pour la librairie de DirectX concernée, je l'ai copier dans mon repertoire lib de Borland 5.6.4. Les autres bibliotheques sont trouvées lors de compilations de programmes Win32 et donc les libs DirectX devrait l'etre aussi.
    J'ai de toute facon installer DirectX SDK complet sans aucun probleme.
    J'ai egalement installer les libs et headers indiquer dans la faq sur DirectX et le compilateur Borland (CBuilder_DX90_Libs.zip) pris sur le site de Clootie.

    Pour l'exemple de DirectX "CreateDevice.cpp", il n'y a qu'une seule reference a Direct3DCreate9: vers le fichier include.

    Tu parle d'inclure le lib dans le projet mais Borland n'a pas de fichier projet (du moins pas en ligne de commande). J'ai configurer mon compilateur (lors de l'installation) tous les paths correctement dans le fichier config.

    Tu parle d'une lib manquante a telecharger sur MSDN, parle-tu de DirectX ou encore d'une autre lib ?

    Merci d'avance pour ton aide

  5. #5
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Il veut bien sûr parler de d3d9.lib, dans laquelle se trouve la définition de cette fonction.

    donc les libs DirectX devrait l'etre aussi.
    Le problème c'est le "DEVRAIT". en es-tu sûr?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut
    Le probleme, c'est que je vois pas comment le verifier puisque je n'arrive pas a compiler un simple exemple de directX.

    Voici la config de brcc32.cfg:
    -IE:\Programmation\Bcc32_564\Include -LE:\Programmation\Bcc32_564\Lib

    et ici celui de ilink32.cfg:
    /LE:\Programmation\Bcc32_564\Lib;E:\Programmation\Bcc32_564\Lib\psdk

    J'arrive a compiler 2 programmes Win32 d'un tutoriel "hellowin 95" et "helloworld".
    Je pense que ces 2 programmes font appel a la lib. import32.lib.
    import32.lib se trouve dans mon repertoire lib comme toutes les libs y compris DirectX et les objets de demarrages specifiques aux types d'applications (win console, win gui, ect...).

    Si donc ces fichiers sont trouvees, il n'y a aucune raison pour que les libs DirectX ne le soit pas, le path etant correct.
    De plus j'avais copier (juste pour essayer) les libs dans mon repertoire de travail avec le meme resultat.
    L'erreur est toujours "unresolved external Direct3DCreate9 referenced from CreateDevice.obj"

    Ou est donc l'erreur SVP ?
    Ce serai vraiment bete de caler sur une erreur de compilation pour un bete exemple de DirectX (Tutorial 1).

    J'ai chercher dans le manuel de Borland et dans la FAQ sans trouver de reponse ou de solution a mon probleme.

  7. #7
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Pour Borland je ne peux pas t'aider. Avec Visual C++ que j'utilise, il y a une directive de compilation qui permet d'inclure une librairie "de force":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      #pragma comment(lib,"..\\Lib\\d3d9.lib")
    Regardes si Borland propose ce genre de directive. Si le compilateur ne trouve pas la librairie, tu auras un message d'erreur donc la tu seras sûr que le problème vient de là.

    Si l'erreur persiste, j'essaierai de récupérer le fichier d3d9.lib (avec le SDK). Peut-être que le tien est corrompu.

    Ensuite tu dois savoir qu'il y a des normes qui permettent à un compilateur de récupérer les fonctions qui sont déclarées dans les librairies. Regardes du côté des __stdcall et des __cdecl et consort. Je ne peux pas en dire plus, je n'ai jamais eu à m'en inquiéter mais c'est peut-être une piste (un paramètre du compilateur qui lui indiquerait comment importer des fonctions externes, avec quelle convention, etc...).

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Par défaut
    Il faut préciser au linker qu'elle sont les lib qu'il faut utiliser pendant l'édition de lien.

    Généralement, ce paramètre est de cette forme :

    -ld3d9 ou -ld3d9.lib

    Regarde la documentation Borland pour plus de précision.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut Probleme resolu: un grand merci a tous
    Merci a tous pour votre aide

    Le probleme etait le suivant:
    Le compilateur Borland Bcc32 version 5.6.4 compilait correctement et tout les paths etait correct. Mais Bcc32 "oubliai" de specifier l'utilisation de la lib d3d9.lib au linker ilink32.

    La modification de mon batch de compilation pour "forcer" l'utilisation de la lib d3d9.lib dans le linker a resolu le probleme.
    J'obtiens ainsi un executable de de 50.688 octets.

    C'est bete comme une simple option de compilation peut rendre la vie infernale

    Un grand merci a tous, c'est vraiment sympa d'aider un debutant avec directX.
    Je vais enfin pouvoir programmer DirectX et Windows car la prommation me manquait terriblement depuis toutes ces annees.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de compilation sous Dev-Cpp
    Par Guldin dans le forum Dev-C++
    Réponses: 2
    Dernier message: 09/02/2006, 08h34
  2. [DEB]Probleme de compil avec Dev-Cpp
    Par Marc_3 dans le forum Dev-C++
    Réponses: 3
    Dernier message: 31/01/2006, 22h27
  3. compilation directx dev-cpp
    Par gaut dans le forum DirectX
    Réponses: 3
    Dernier message: 11/02/2004, 04h16
  4. [TP]Probleme de compilation sous TP7
    Par yffick dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 18/12/2003, 20h32
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo