Bonjour à tous!
Bon, c'est probablement tout bête mais enfin... Je bataille depuis un moment sans trouver de solutions.
Pour résumer le contexte : J'ai une appli C++/CLI. J'ai donc une partie en .Net (mais, ça peu importe) et une partie en C++ "classique".
Cette dernière partie était constitué jusqu'à maintenant d'une simple classe ( .h et .cpp). Pour que ce soit moins brouillon, j'ai voulu créer une nouvelle classe dans laquelle j'ai déplacée des fonctions de la première. Je souhaiterai que cette deuxième classe contienne des fonctions qu'on puisse appeler sans avoir à instancier un objet de cette classe (des fonctions membres static sauf erreur).
Bref, ça ressemble à ça :
Classe1.h
Classe1.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef CLASSE1_H #define CLASSE1_H class Classe1 { public: Classe1 (); virtual ~Classe1 (); }; #endif //CLASSE1_H
Classe2.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 #include "stdafx.h" #include "Classe1.h" #include "Classe2.h" Classe1::Classe1 () { Classe2::TraitementQuelconque(); } Classe1::~Classe1 () { }
Classe1.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #ifndef CLASSE2_H #define CLASSE2_H class Classe2 { public: static void TraitemantQuelconque ( ); }; #endif //CLASSE2_H
C'est en gros la structure du truc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include "stdafx.h" #include "Classe2.h" Classe2::TraitementQuelconque ( ) { //.... }
Seulement à la compilation, ce truc me donne des erreur de link du genre :
Dans mon code, la fonction en question (appelée ici TraitementQuelconque) est une fonction template. Je sais pas si ça peut avoir un rapport...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Erreur 2 error LNK2028: jeton non résolu (0A000DF1) "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl Classe2::TraitementQuelconque<char *>(char * const &)" (??$TraitementQuelconque@PAD@Classe2@@$$FSA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABQAD@Z) référencé dans la fonction "private: void __thiscall Classe1::Classe1" (?Classe1@Classe1@@$$FAAEXPAUIXMLDOMNode@@@Z) Classe1.obj Appli1 Erreur 9 error LNK2019: symbole externe non résolu "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl Classe2::TraitementQuelconque<char const *>(char const * const &)" (??$TraitementQuelconque@PBD@Classe2@@$$FSA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABQBD@Z) référencé dans la fonction __catch$?ValidateFile@Classe1@@$$FAAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$0 Classe1.obj Appli1
Partager