utilisation de blibotheque C++ en C# - C#/.NET managed - Programmation
Marsh Posté le 07-06-2004 à 12:11:40
ReplyMarsh Posté le 07-06-2004 à 12:18:24
HelloWorld a écrit : Ecrire un wrapper en Managed C++. |
Ca y est, le mot est laché !!!
le soucis est que je ne suis pas a l'aise en C++ (euphemisme pour dire que je suis une bille) et que je n'ai pas envie de me lancer dans ce genre de dev car:
- je n'aime pas le C++
- ca va me prendre un temps monstre avec tous les pbs que je vais rencontrer.
en fait, j'aurais surtout voulu savoir si un outil permettant de creer ce wrapper n'existait pas deja.
A ma connaissance, il existe ce genre d'outil qui permet de passer d'une DLL a du code managé !
auriez vous une idee ?
merci d'avance
v.
Marsh Posté le 07-06-2004 à 13:58:05
vonm a écrit : |
Lequel ?
Le probleme n'est pas la dll, mais les fichiers de déclaration, structures de données, etc... écrits en C++.
Dotnet ne fonctionne pas pareil : pas d'héritage multiple, gestion auto de la mémoire, pas de STL & templates, ...
Non, faut faire un wrapper.
Une solution est peut être SWIG, qui supporte le C#. Mais je l'ai jamais testé avec .Net, et il doit y avoir des limites quand même (généricité, héritage multiple, ...)
http://www.swig.org/
Marsh Posté le 07-06-2004 à 14:07:13
Citation : Lequel ? |
aucune idee, un collegue vient de me dire que ca existait et de regarder dans la doc de visual studio mais je n'ai pas cherche.
Citation : Le probleme n'est pas la dll, mais les fichiers de déclaration, structures de données, etc... écrits en C++. |
je suis bien d'accord.
mais a mon avis, etant donne que le code en question est tres simple (n'utilise aucune fonctionnalite propre a une plateforme et que du c++ standard) je pensais qu'un outil de portage aurait pu faire ca.
en meme temps, tu vas me repondre que s'il est si simple, ca sera facile de faire un wrapper...
Citation : Une solution est peut être SWIG, qui supporte le C#. Mais je l'ai jamais testé avec .Net, et il doit y avoir des limites quand même (généricité, héritage multiple, ...) |
j'ai regarde rapidement, mais c'est ultra simpliste.
bon, allez je vais me lancer.
sais-tu ou je peux trouver de la doc accessible sur ces wrappers ???
merci d'avance
v.
Marsh Posté le 07-06-2004 à 14:10:50
bref tu connais ni C# ni C++ ... et toujours pas google ni même le clic_sur_lien_pour_aller_sur_un_site_web
Marsh Posté le 07-06-2004 à 14:20:43
Taz a écrit : bref tu connais ni C# ni C++ ... et toujours pas google ni même le clic_sur_lien_pour_aller_sur_un_site_web |
si,
je pense etre capable de me demerder correctement en C# et connaitre suffisamment de choses en C++ pour etre capable de dire que j'aime pas ca !
effectivement, j'aurais pu me debrouiller avec google pour trouver de la doc sur les wrappers.
mais la, la question etait posee a la personne qui me repond depuis le debut (HelloWorld en l'occurrence) et en aucun cas a toi.
je te remercie donc de ta precieuse participation a ce fil de discussion mais je te remercie aussi d'eviter de m'aider par la suite.
a bon entendeur...
v.
Marsh Posté le 07-06-2004 à 14:45:44
Citation : aucune idee, un collegue vient de me dire que ca existait et de regarder dans la doc de visual studio mais je n'ai pas cherche. |
Il doit faire référence à DllImport. C'est bien pour utiliser 2 ou 3 fonctions en C, c'est pas fait pour utiliser des classes C++.
Citation : je suis bien d'accord. |
Justement, y'a rien du C++ standard dans .Net. MC++ utilise System::String, C++ utilise std::string, et c'est pareil pour tout le reste. C'est loin d'être si simple...
Citation : sais-tu ou je peux trouver de la doc accessible sur ces wrappers ??? |
Cherche de la doc sur MC++, sur le Marshaling.
http://www.developer.com/net/cplus/article.php/3096281
Marsh Posté le 07-06-2004 à 14:55:25
merci beaucoup pour ton aide,
je m'y attelle de ce pas.
a+
v.
Marsh Posté le 07-06-2004 à 11:40:08
Bonjour,
je dispose d'une bibliotheque C++ (Ann :
http://www.cs.umd.edu/~mount/ANN/) que je souhaiterais utiliser en C#.
je ne sais pas quelle peut etre la meilleure solution pour faire cela.
aureiz vous une idee sur les differentes methodes qui s'offrent a moi ?
merci d'avance
v.