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 !