utilisation de blibotheque C++ en C#

utilisation de blibotheque C++ en C# - C#/.NET managed - Programmation

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.

Reply

Marsh Posté le 07-06-2004 à 11:40:08   

Reply

Marsh Posté le 07-06-2004 à 12:11:40    

Ecrire un wrapper en Managed C++.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh 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.

Reply

Marsh Posté le 07-06-2004 à 13:58:05    

vonm a écrit :


A ma connaissance, il existe ce genre d'outil qui permet de passer d'une DLL a du code managé !


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/


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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++.
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.


 
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, ...)
http://www.swig.org/


 
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.

Reply

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

Reply

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.

Reply

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.
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)


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


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 07-06-2004 à 14:55:25    

merci beaucoup pour ton aide,
 
je m'y attelle de ce pas.
 
a+
 
v.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed