greenzephyr
Messages postés7Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention 8 août 2009
-
7 août 2009 à 09:52
greenzephyr
Messages postés7Date d'inscriptionmercredi 15 novembre 2006StatutMembreDernière intervention 8 août 2009
-
8 août 2009 à 13:18
Salut à tous,
Je dois faire une appli Windows Form qui utilise une dll compilée sous Linux avec g++.
Je dispose des sources de cette dll.
Pour vous quelle est la meilleur facon de faire mon application Windows Form ?
(VS C++, VS C++ managé (CLR), C# ???)
Si la question est trop floue, voici quelques petites questions qui m'embêtent beaucoup ....
1) Est-il possible (et comment ) d'utiliser une dll compilée sous Linux avec g++ dans un projet C++ (managé de préférence) sous Visual Studio ?
2) Si je dispose des sources de la dll compilée g++, quelles sont les étapes et les options VS pour avoir une assembly utilisables avec C# ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 8 août 2009 à 12:28
Salut,
1) C++ :
Tu ne peux pas faire de Windows Forms en "vrai" C++.
Les Windows Forms est une librairie dotnet (Une technologie ou les logiciel et librairies sont compilées vers du code intermédiaire, comme en java).
Tu peux par contre faire ton appli en C++ natif (Ce sera plus facile pour utiliser ta dll : pas besoin de faire du PInvoke/Marshalling) avec une fenêtre réalisée en Win32 et en utilisant par exemple Code::Blocks/gcc, pour rester consistant avec la dll.
2) C++ Managé :
Le C++ managé est très peu utilisé, et le peu qui l'utilise sont généralement des n00bs qui ont téléchargé Visual Studio express et qui s'en sont servi sans savoir que tout le monde télécharge aussi le platform sdk. Bref, tu trouveras peu d'aide et peu d'exemple.
D'autre part, le C++ managé est du C++ bricolé pour pouvoir être compilé vers le code intermédiaire dotnet, donc c'est pas très jolie.
3) Le C# :
Il est de loin plus adapté au dotnet et aux WinForms vu qu'il a été créé en même temps et pour le dotnet. Par contre, les performances, la portabilité (Machine virtuelle en bonne version requise sur la machine cible), et la facilité d'interfaçage avec la dll ne seront pas au rendez vous (Voir PInvoke).
PS :
Petite question, ta dll linux, tu l'as cross compilée ?