Bonjour,
Je viens vers vous après avoir epuisé ma science.
Mon Pb est le suivant :
Je me lance dans visual c++ 2008 pour des besoins d'interfaces "jolies".
J'ai crée un projet CLR Winform.
J'ai crée une dll MFC, car la bibliothèque propriétaire que j'utilise est tout en MFC avec des Cstring, Carray, afxMessageBox à la pelle.
La dll exporte des classes.
Mon but est d'utiliser la classe exportée par la dite dll, dans mon projet WinForm.

Est ce possible ?
C'est quoi la marche à suivre ?

Pour plus de détails :
L'entête de la calsse
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
 
#if !defined(AFX_MFCClass__INCLUDED_ONCE)
#define AFX_MFCClass__INCLUDED_ONCE
 
#ifdef AFX_MFCClass__INCLUDED_
	#define MFCClass_EXPORT_DECL __declspec(dllexport)
#else
	#define MFCClass_EXPORT_DECL __declspec(dllimport)
#endif
 
 
class MFCClass_EXPORT_DECL CMFCClass
{
private :
	CString m_strTexte;
public:
	CMFCClass(void);
	~CMFCClass(void);
 
	void SetString(CString szText);
	CString GetString();
};
#endif
Le code source de la calsse :
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
 
#include "StdAfx.h"
 
#define AFX_MFCClass__INCLUDED_
#include "MFCClass.h"
 
CMFCClass::CMFCClass(void)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
}
 
CMFCClass::~CMFCClass(void)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
}
 
void CMFCClass::SetString(CString szText)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
 
	m_strTexte = szText;
}
 
CString CMFCClass::GetString()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
 
	return m_strTexte;
}
Le code généré pour l'application WinForm
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
#pragma once
 
#undef AFX_MFCClass__INCLUDED_
#include "MFCClass.h"		// Classe MFC
 
namespace CLR_WinForm {
 
	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;
 
	/// <summary>
	/// Description résumée de Form1
	///
	/// AVERTISSEMENT*: si vous modifiez le nom de cette classe, vous devrez modifier la
	///          propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
	///          pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
	///          les concepteurs ne pourront pas interagir correctement avec les ressources
	///          localisées associées à ce formulaire.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO*: ajoutez ici le code du constructeur
			//
		}
 
	protected:
		/// <summary>
		/// Nettoyage des ressources utilisées.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^  button1;
	protected: 
 
	private:
		/// <summary>
		/// Variable nécessaire au concepteur.
		/// </summary>
		System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
		/// <summary>
		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
		/// le contenu de cette méthode avec l'éditeur de code.
		/// </summary>
		void InitializeComponent(void)
		{
			this->button1 = (gcnew System::Windows::Forms::Button());
			this->SuspendLayout();
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(12, 331);
			this->button1->Name = L"button1";
			this->button1->Size = System::Drawing::Size(75, 23);
			this->button1->TabIndex = 0;
			this->button1->Text = L"Un Bouton";
			this->button1->UseVisualStyleBackColor = true;
			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(522, 366);
			this->Controls->Add(this->button1);
			this->Name = L"Form1";
			this->Text = L"Form1";
			this->ResumeLayout(false);
 
		}
#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			 CMFCClass mfcClass;
			 }
 
	};
}
Ca marche pas !

Merci à vous.