Bonjour,

j'ai développé une bibliothèque de classe dont je souhaite désormais tester la fonction principale en faisant appel à un projet externe de test.

Je me retrouve néanmoins avec un problème de linker déjà rencontré de nombreuses fois mais que je n'arrive pas à résoudre cette fois-ci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
1>commande_lib_clr.obj : error LNK2028: jeton non résolu (0A00000B) "public: int __thiscall test_lib::createMarkers::createOneMarker(char *)" (?createOneMarker@createMarkers@test_lib@@$$FQAEHPAD@Z) référencé dans la fonction "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>commande_lib_clr.obj : error LNK2019: symbole externe non résolu "public: int __thiscall test_lib::createMarkers::createOneMarker(char *)" (?createOneMarker@createMarkers@test_lib@@$$FQAEHPAD@Z) référencé dans la fonction "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
1>D:\Travail\commande_lib_clr\Debug\commande_lib_clr.exe : fatal error LNK1120: 2 externes non résolus
Le projet de test est une application console CLR. VS ne m'a pas autorisé une Win32 lorsque je dois rajouter la bibliothèque de classe qui a pour en-tête :

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
// test_lib.h
#pragma once
//using namespace System;  // this had to be commented out
namespace test_lib{
        public class createMarkers
        {
        // TODO: Add your methods for this class here.
        public:
            createMarkers(char *VCID)
             :mCount(VCID)
                {
                }
                int createOneMarker(char *VCID_in);
        private:
                char * mCount;
        };
}
Après avoir édité les répertoires d'include et le linker en rajoutant les lib nécessaires au fonctionnement de test_lib (qui se compile très bien désormais), et en utilisant les mêmes paramètres pour mon projet commande_lib_clr, l'erreur vu en haut apparaît.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
// commande_lib_clr.cpp*: fichier projet principal.
 
#include "stdafx.h"
#include "test_lib.h"
using namespace System;
 
int main(array<System::String ^> ^args)
{
    test_lib::createMarkers cm1("abcd");
    cm1.createOneMarker("abcd");
    return 0;
}
Alors il me manque sûrement juste un truc à rajouter dans le linker mais je vois pas lequel ...

Si quelqu'un peut m'aider, j'en serais vraiment heureux

Merci d'avance !