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 :

[debutant][C++][9]erreur à la compilation


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut [debutant][C++][9]erreur à la compilation
    Bonjour, j'ai essyé un morceau de code pour initialiser Direct X sous Visual Studio 2005 dans une projet Windows en C++.
    j'ai un message pas sympa lors de la comilation :

    error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "long __cdecl InitD3D(struct HWND__ *)" (?InitD3YAJPAUHWND__@@@Z) MytestDirect3D.obj
    Pour moi c'est suer parlant : j'ai essayé des exemples du SDK, en referancant les dossier de la meme facon mon projet a compilé donc ca ne semble pas venir de la facon de préciser les chemins des includes et librairies.

    Le code que j'ai mis est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     include <d3d9.h>
    ...
    //
    HRESULT InitD3D( HWND hWnd );
    // Variables Globales
    IDirect3D9* _d3d9;
     
    BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
    {
       HWND hWnd;
       ...
       InitD3D( hWnd );
     
    }
     
    ...
     
    HRESULT InitD3D( HWND hWnd )
    {
    	D3DCAPS9 caps;
    	_d3d9 = Direct3DCreate9(D3D_SDK_VERSION);
    	_d3d9->GetDeviceCaps( D3DADAPTER_DEFAULT,  D3DDEVTYPE_HAL, &caps);
    int vp = 0;
    if( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT )
    {
    vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
    }
    else
    {
    vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
    }
    return S_OK;
     
    }
    Pourriez-vous m'expliquer pourquoi je me fais jeter?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu n'as sans doute pas lié avec d3d9.lib dans les options de ton projet.

  3. #3
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Oui, et ce n'est pas pendant la compilation mais pendant l'édition des liens.

  4. #4
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Oui la dessus on est d'accord , mégarde d ema part dans l'expression d emon problème. Toutefois, les bibliotheque à lier se trouve dans le SDK sous lib/X86 (je suis en 32 bits), ce repertoire EST ajouté dans les option dans le projet au niveau du Linker, d'ou mon incomprehension, un jour viendra ou je saurai developper !!! ( ce qui peut etre utile pour un developpeur)

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    ce repertoire EST ajouté dans les option dans le projet au niveau du Linker
    Avec ça l'éditeur de lien saura où chercher les fichiers à lier, mais tu n'as toujours pas indiqué ceux-ci.
    Options du projet Linker Input Additionnal dependencies Ajouter d3d9.lib (et d3dx9.lib, tu en auras besoin juste après).

    un jour viendra ou je saurai developper !!!
    Suffit de savoir comment marche une compilation / édition de liens, et paramétrer son environnement en conséquence. Une fois que tu sais ça tu n'as plus aucun problème avec tes projets

  6. #6
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 787
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 787
    Par défaut
    Ok merci
    Mon soucis la c'est que lorsque je prends les solutions du SDK (les solutions VS2005 des tutoriaux en version 9), je n'ai qu'à ajouter le repertoir lib/x86 pour l'editeur de lien, le repertoire include pour le comilateur. je n'ajoute pas les additional dependencies. Du coup, je me demande pourquoi je dois les ajouter dans un cas, pas dans l'autre? Est-ce à dire que la solution une fois enregistrée est porteuse des infos concernant les dépendences et que cela explique le fiat que ce n'ets pas necessaire lorsque je prends une solution du SDK?

Discussions similaires

  1. [Debutant] Erreur du compilation sur l'emulateur.
    Par genius4evers dans le forum Android
    Réponses: 10
    Dernier message: 23/03/2013, 15h25
  2. Debut en C++ erreur lors de la compilation
    Par chabeka dans le forum C++
    Réponses: 4
    Dernier message: 05/02/2009, 10h45
  3. [Debutant(e)] Erreur de compilation
    Par gandalf_le_blanc dans le forum Applets
    Réponses: 9
    Dernier message: 27/02/2007, 09h30
  4. [Debutant c++] erreur de compilation de template
    Par wdionysos dans le forum Langage
    Réponses: 7
    Dernier message: 22/06/2006, 19h10
  5. [Debutant GCC sur Solaris]Erreur de compilation
    Par xxaragornxx dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 13/01/2006, 17h29

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