OVH Cloud OVH Cloud

Réutiliser du code MFC

1 réponse
Avatar
lionel letoffet
Bonjour,

depuis des années je travail avec MFC.

Je veux passe à C#, Windows Forms et Control Forms.

Mais je veux pouvoir réutiliser mon existant MFC. La question est comment ?

S'il s'agit d'un ActiveX, Pas de problème je sais faire.

Mais pour des classes dérivées de MFC? Comment réouvrir tous les fichiers
qui ont été sérialisés dans une architecture Document/Vue? Comment
reconnecter dans un Windows Forms des classes qui ont été faites en
utilisant MFC?

Merci pour tous tuyaux, liens, réponses, trucs, tutoriaux, .....

1 réponse

Avatar
Eric Vernié [MS]
Bonjour Lionel,

Pour ce genre de chose, ce que je te propose c'est de créer un petit Wrapper
en C++ .NET qui te permettra de faire le pont avec C#.

En effet, il existe plusieurs manière de faire le pont entre le monde .NET
et le monde Natif. COM Interop (ActiveX COM), P/Invoke (API Win32) et It
just Work (IJW). C'est ce dernier que tu pourrais utiliser sans trop
d'effort
Je m'explique :
Le C++ est le seul langage, qui permet de mixer du source Natif et du source
.NET. En un mot dans un seul source tu as les deux mondes. (Logiquement,
plus performant que COM Interop, voir P/Invoke).
Comment cela ce met en place.

Il existe un pragma qui permet d'indiquer au compilateur dans quel mode il
est.
pragma managed et pragma unmanaged (va faire un tour de ce coté la)
D'autre part, pour echanger des donnees d'un monde à l'autre (par exemple
des structures des chaines ansi, des tableaux, et ceci quelque soit le
langage) tu peut utiliser la classe System.Runtime.InteropServices.Marshal
Tu y trouveras des methodes Static utiles pour faire tout un tas de choses
en .NET dans le monde Natif. ('Allouer de la mémoire, convertir une chaine
.NET (String) en une chaine COM (BSTR) etc. etc...

A+

Eric Vernié
Microsoft France







"lionel letoffet" a écrit dans le message de
news: 41809465$0$15756$
Bonjour,

depuis des années je travail avec MFC.

Je veux passe à C#, Windows Forms et Control Forms.

Mais je veux pouvoir réutiliser mon existant MFC. La question est comment
?

S'il s'agit d'un ActiveX, Pas de problème je sais faire.

Mais pour des classes dérivées de MFC? Comment réouvrir tous les fichiers
qui ont été sérialisés dans une architecture Document/Vue? Comment
reconnecter dans un Windows Forms des classes qui ont été faites en
utilisant MFC?

Merci pour tous tuyaux, liens, réponses, trucs, tutoriaux, .....