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

Visual C++ Discussion :

Erreur LNK2019 lors de la création d'une DLL


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Orhleil
    Homme Profil pro
    Intégrateur fonctionnel
    Inscrit en
    Mai 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 81
    Par défaut Erreur LNK2019 lors de la création d'une DLL
    Bonjour à tous,
    J'essaie de créer une DLL dans Visual Studio 2010 en C++ dans le cadre d'un projet de mon école. On a auto-généré le code via un template, bref je vous passe les détails. Lorsque j'essaie de créer un "Jeu" depuis mon main.cpp (qui est dans un projet différent du projet DLL), j'obtiens une erreur :
    Erreur 1 error LNK2019: symbole externe non résolu _JEU_CreerJeu référencé dans la fonction _main H:\global\TP POO\ProjSB\Projet Space Battle\TestDLL\main.obj TestDLL
    Mon code est:

    Jeu.h
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    //------------------------------------------------------------------------------
    // <auto-generated>
    //     This code was generated by a tool.
    //     Changes to this file will be lost if the code is regenerated.
    // </auto-generated>
    //------------------------------------------------------------------------------
    #pragma once
    #define WANTDLLEXP
    #ifdef WANTDLLEXP		//exportation dll
    #define DLL  __declspec( dllexport )
    #define EXTERNC extern "C"
    #else
    #define DLL		//standard
    #define EXTERNC
    #endif
    #include "StrategieJeu.h"
    #include<vector>
     
    class Jeu
    {
    	private :
     
     
    	protected :
     
    		StrategieJeu* strategie;
     
    	public :
     
    		int nbJoueurs;
    		int nbReparationsMax;
    		Jeu(int joueurs, int repar = -1);
     
    	private :
     
     
    	protected :
     
     
    	public :
     
    		virtual void lancerJeu();
     
    }; 
    EXTERNC DLL void JEU_lancerJeu(Jeu* j);
    EXTERNC DLL Jeu* JEU_CreerJeu(int joueurs, int repar);
    Jeu.cpp
    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
    #include "Jeu.h"
    #include <iostream>
     
    using namespace std;
     
    Jeu::Jeu(int joueurs, int repar):nbJoueurs(joueurs),nbReparationsMax(repar) {
    	cout << "Jeu créé avec " << nbJoueurs << " joueurs et " << nbReparationsMax << " réparations possibles." << endl;
    }
     
    void Jeu::lancerJeu() {
    	cout << "Jeu lancé !" << endl;
    }
     
    EXTERNC DLL void JEU_lancerJeu(Jeu* j) {
    	j->lancerJeu();
    }
     
    EXTERNC DLL Jeu* JEU_CreerJeu(int joueurs, int repar) {
    	Jeu* newjeu = new Jeu(joueurs, repar);
    	return newjeu;
    }
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "Jeu.h"
    #include <iostream>
     
    using namespace std;
     
    int main(int argc, char* argv[]) {
    	cout << "Test lancé." << endl;
     
    	Jeu* jeutest = JEU_CreerJeu(4,-1);
     
    	int test;
    	cin >> test;
    }
    Merci par avance de votre aide !

  2. #2
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    Bonjour,

    c'est un problème de linkage (youhouu je suis trop fort ).

    Citation Envoyé par Koala01
    - Soit la fonction fait appel à une bibliothèque externe que tu n'as pas indiquée comme étant à utiliser par l'éditeur de liens.
    - Soit la fonction qui n'est pas trouvée est déclarée mais non implémentée.
    - Soit tu as omis de fournir le fichier objet dans lequel se trouve l'implémentation de la fonction qui n'est pas trouvée dans la liste des fichiers objet à utiliser
    Cordialement,

  3. #3
    Membre éclairé Avatar de Orhleil
    Homme Profil pro
    Intégrateur fonctionnel
    Inscrit en
    Mai 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 81
    Par défaut
    Salut à toi, merci de t'intéresser à mon problème !
    La méthode est bien implémentée, 'est donc certainement soit la 1ère soit la 3è solution. C'est certainement d'autant plus vrai que je ne sais même pas de quoi tu parles alors que ça a l'air d'être des manipulations indispensables ^^'

    EDIT : YATTTAAAAA c'était ça : j'avais pas inclus le lib de la dll dans l'éditeur de liens, merci !

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

Discussions similaires

  1. [SP-2007] Erreur inconnu lors de la création d'une application Web
    Par hassine dans le forum SharePoint
    Réponses: 18
    Dernier message: 24/08/2010, 09h48
  2. Pb de compilation lors de la création d'une DLL
    Par Annaced dans le forum Visual C++
    Réponses: 8
    Dernier message: 15/06/2010, 23h26
  3. ERREUR incompréhensible lors de la création d'une fonction
    Par BATAK dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/10/2009, 22h36
  4. Erreur: 1005 lors de la création d'une table
    Par developppez dans le forum MySQL
    Réponses: 3
    Dernier message: 15/12/2008, 15h45
  5. Problème lors de la création d'une DLL?
    Par zuzuu dans le forum Windows
    Réponses: 6
    Dernier message: 04/10/2007, 10h26

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