Appel dll c# depuis c++

Appel d'une DLL C# depuis une autre C++

Problématique

Le C# permet de créer des DLL avec un code managé : c'est-à-dire, il permet d'améliorer la sûreté de fonctionnement d'un programme (et de simplifier le travail du programmeur). C'est un code qui s'exécute sous la gestion de la machine virtuelle CLR, ou d'une autre machine virtuelle. Ce terme est employé par opposition au unmanaged code (code non géré = code natif), qui est exécuté directement par le processeur.

Par contre, le C++ permet de créer du code natif. Ce dernier, est composé d'instructions directement reconnues par un processeur. Le code natif est donc lié à une famille particulière de processeurs partageant le même jeu d'instructions.

A ce point, on peut constater que, depuis un code natif, il sera difficile d'appeler du code managé, sauf si on crée une interface pour faire communiquer les deux environnements, On appel cette interface coté C#, un objet COM (Component Object Model).

Le Component Object Model, aussi connu sous le nom d'ActiveX, est un composant logiciel (comme les DLL) créé par Microsoft. Il est utilisé en programmation pour permettre le dialogue entre programmes.

Exemple

Projet C#

Projet C++

A voir également
Ce document intitulé « Appel dll c# depuis c++ » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous