Bonjour,

Je suis en train de tester Eclipse EDT et je souhaite :
  • réaliser une dll

  • réferencer la dll



J'ai donc créé 2 projets:
  • StaticDLL

  • DLLUser


J'ai configuré le premier projet en librairie statique avec comme artefact extension "lib"
Et tout compile correctement.

Voici le code du StaticDLL.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#ifndef STATICDLL_H_
#define STATICDLL_H_
 
void printVersion();
 
#endif
Et le code du StaticDLL.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
#include <iostream>
#include "StaticDLL.h"
 
using namespace std;
 
void printVersion() {
	cout << "StaticDLL version 0.0" << endl;
}
Jusque la c'est simple et tout compile correctement !

Ensuite je crée le second projet en artefact extension "exe".

J'ai référencé le projet StaticDLL

et j'ai créé le main.cpp suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
#include <StaticDLL.h>
 
int main() {
	printVersion();
}
Je ne suis pas sur de moi concernant le include (je viens du monde de Java et le C++ est loin d'être mon dada)

mais le printVersion() génère l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
g++ -IC:\Programs\Eclipse-CPP\workspace\StaticDLL -O0 -g3 -Wall -c -fmessage-length=0 -osrc\main.o ..\src\main.cpp
..\src\main.cpp:9:23: StaticDLL.h: No such file or directory
..\src\main.cpp: In function `int main()':
..\src\main.cpp:12: error: `printVersion' was not declared in this scope
..\src\main.cpp:12: warning: unused variable 'printVersion'
Cependant j'y ai accès en utilisant le CTRL+SPACE !

Deux questions:
La première: Est-ce que mon code est correct ?
La deuxième: Ais-je oublié quelque chose dans la configuration des projets ?

Merci d'avance pour vos réponses.