Bonjour tout le monde,

J'ai un problème d'architecture. C'est le suivant :
  • j'ai une classe A -> je généré une bibliothèque A
  • J'ai une classe B qui génère une bibliothèque B et qui utilise la bibliothèque A.


J'aimerais fournir à un client une bibliothèque B qu'il puisse utiliser juste avec le header de B.
Est-ce possible dans le cas suivant (ClasseA.h, ClasseA.cpp, ClasseB.h, ClasseB.cpp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#pragma once
namespace NameSpaceA {
    class ClasseA
    {
    public:
        ClasseA();
        ~ClasseA();
    };
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#include "stdafx.h"
#include "ClasseA.h"
namespace NameSpaceA {
    ClasseA::ClasseA(){}
    ClasseA::~ClasseA(){}
  }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#pragma once
using namespace NameSpaceA;
namespace NameSpaceB {
    class ClasseB
    {
    public:
        ClasseB();
        ~ClasseB();
        ClasseA test(void);
    };
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include "stdafx.h"
#include "../ClasseA/ClasseA.h"
#include "ClasseB.h"
using namespace NameSpaceA;
namespace NameSpaceB {
    ClasseB::ClasseB(){}  
    ClasseB::~ClasseB(){}    
    ClasseA ClasseB::test(void)    {return ClasseA();} 
}
Dans ce cas précis, j'arrive à générer les .lib. Cependant lors de l'utilisation de la librairie B dans un programme quelconque


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
int main()
{
 
    ClasseB();
    std::cout << "Hello World!\n";
}
la compilation ne se réalise pas.

Comment est -ce que je peux générer un {ClasseB.h , ClasseB.lib] autosuffisant ?