Apeller des fonctions C++ (via une dll) depuis C#

Résolu
Messages postés
21
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
20 janvier 2009
-
Messages postés
21
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
20 janvier 2009
-
Bonjour,

bien que je ne sois pas du tout expérimenté dans ces langages, on m'a demandé depuis une application C# d'apeller des fonction C++ qui seront contenu dans une DLL.
A la base je suis plutôt Java, donc C# je m'en sort encore pour ce que j'ai eu à faire (webservice), mais le C++ on peut dire que j'y connais rien.

Alors j'ai 2 questions :

- Comment faire l'appel à ces fonctions ?
- Comment ça se passe pour les type de données pour les paramètres/retour ? Je peux utiliser des tableaux et structures ?

Merci pour votre aide.

23 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
D'un point de vue sécuritaire, "marshalling" ou context unsafe, ça ne change pas grand chose sauf qu'en mode unsafe, le runtime .NET ne verifie plus les dépassements de capacité par exemple ou la libération des objets etc... Disons que tous les langages .NET ne sont pas capablent d'utiliser les pointeurs d'ou l'importance du marshalling.
Messages postés
21
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
20 janvier 2009

Merci pour ces précisions :)
Messages postés
21
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
20 janvier 2009

Petite question pratique :

Mon programme C# est en faite un WebService.
J'ai placé la dll que j'utilise dans un répertoire que j'ai autorisé pour l'utilisateur ASP.NET

Donc pas de souci j'y accède.

par contre, ma dll utilise d'autre dll, je me posait donc la question de savoir où les placer ?
Si je les places dans le même repertoire que ma dll ça marchera ?
A noter que je n'ai aucune idée de comment les appels sont fait.

Je dis ça car avec la dernière dll qu'on m'a fourni (celle qui en utilise d'autre justement), ça plante.
Or c'est difficile de débugger ça (en tout cas je ne sais pas trop comment faire, et je ne vois rien dans les logs de mon webservice, quoi qu'il se passe d'ailleur.