Bonjour tout le monde,
Je n'arrive pas à utiliser une dll lorsque je l'encapsule dans un espace nom. C'est comme si les liaisons se perdaient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #ifdef ROOTERLIB_EXPORTS #define ROOTERLIB_API __declspec(dllexport) #else #define ROOTERLIB_API __declspec(dllimport) #endif //ROOTERLIB_EXPORTS class ROOTERLIB_API CRooterLib { public: CRooterLib(void); };
crée bien un .lib et dll que je peux utiliser dans un programme. Alors que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "stdafx.h" #include "RooterLib.h" #include <iostream> using namespace std; CRooterLib::CRooterLib(){ }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifdef ROOTERLIB_EXPORTS #define ROOTERLIB_API __declspec(dllexport) #else #define ROOTERLIB_API __declspec(dllimport) #endif //ROOTERLIB_EXPORTS namespace MaClasse{ class ROOTERLIB_API CRooterLib { public: CRooterLib(void); }; }ne fonctionne pas. Lorsque j'essaye d'utiliser la DLL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include "stdafx.h" #include "RooterLib.h" #include <iostream> using namespace std; namespace MaClasse{ CRooterLib::CRooterLib(){ } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 using namespace std; using namespace MaClasse; int main() { int a; CRooterLib test; }
J'obtiens les erreurs suivantes :
Erreur LNK2019 symbole externe non rÚsolu "__declspec(dllimport) public: __cdecl MaClasse::CRooterLib::CRooterLib(void)" (__imp_??0CRooterLib@MaClasse@@QEAA@XZ) rÚfÚrencÚ dans la fonction main Utilisateur D:\Programmation\FramworkDLL\Utilisateur\Utilisateur\Utilisateur.obj 1 Link
Erreur LNK1120 1 externes non rÚsolus Utilisateur D:\Programmation\FramworkDLL\Utilisateur\x64\Debug\Utilisateur.exe 1 Link
Auriez-vous une explication?
Partager