Bonjour,
J'ai 3 projets: projet C#, projet C++ et projet C++/CLI Wrapper. Mon but est d'utiliser des classes natifs c++ dans un projet C#. C'est pourquoi j'ai créé un projet C++/CLI.
Dans mon projet C++/CLI j'ai 2 classes, classA et classB.
ClassA:
et
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
18
19
20
21
22
23
24 //classA.h #pragma once #include "classB.h" using namespace System; namespace Wrapper { public ref class ClassA { public: ClassA(); virtual ~ClassA(); void setProject( String^ i_project ); private: String^ m_project; ClassB^ m_classB; }; }
Class B:
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
18
19
20
21
22
23
24
25 //classA.cpp #include "stdafx.h" #include "classA.h" using namespace Wrapper; ClassA::ClassA() { m_classB = gcnew ClassB(); } ClassA::~ClassA() { if (m_classB) delete m_classB; } void ClassA::setProject( String^ i_project ) { m_classB->setProjectFromClassA( i_project ); }
et
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
18
19
20
21
22
23 //classB.h #pragma once using namespace System; namespace Wrapper { public ref class ClassB { public: ClassB(); virtual ~ClassB(); inline void setProjectFromClassA( String^ i_project ) { m_project= i_project; }; void methodB(); private: String^ m_project; }; }
Dans mon projet C#, je voudrais réutiliser ces 2 classes A et B:
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
18
19
20
21
22 //classB.cpp #include "stdafx.h" #include "classB.h" using namespace Wrapper; ClassB::ClassB() { } ClassB::~ClassB() { } void ClassB::methodB() { String^ test = m_project; }
Mais j'ai un problème lors du debug dans le projet C#.Le string test dans la methodB() de classB reste toujours null. Pourquoi? Comment dois-je implémenter mes classes A et B, ainsi que mon projet C# pour que je puisse bien récupérer le string test dans la methodB()? Avez-vous un exemple de code svp? Je suis forte débutante et un exemple de code m'aiderait beaucoup.
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
18
19
20
21
22
23
24
25
26
27
28
29
30 using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Wrapper; namespace CSharpInterface { public partial class Program { public ClassA myclassA = new ClassA(); public ClassB myclassB = new ClassB(); public void test() { myclassA.setProject("test"); myclassB.methodB(); } static void Main(string[] args) { Program myprogram = new Program(); myprogram.test(); } } }
Merci pour votre aide svp.
Cordialement,
Partager