Accueil
Articles
Astuces
Vidéos
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
Intégrez du code C++ natif dans vos applications .NET
Cet article s'adresse aux personnes qui connaissent C++ et .NET et a pour objectif de montrer comment appeler du code C++ natif depuis des applications .NET
Par
Rémi Thomas
publié le 12/01/2007 à 09:38, lu 8374 fois, 4 pages
2 commentaire(s)
Tags:
C#
,
CLI
,
C++
2 | Les différents modes disponibles en .NET
1 | Pour commencer quelques rappels généraux sur .NET
2 | Les différents modes disponibles en .NET
3 | Exemple d'intégration de code C++ natif dans une applications .NET C#
4 | Conclusion
Téléchargez le code source - 10 Kb
Les différents modes disponibles en .NET
Mode Managed : c'est le mode par défaut, utilisé par l'ensemble des langages .NET. La mémoire et les pointeurs sont gérés par la CLR.
Mode Unmanaged : dans ce mode, la CLR gère la mémoire mais pas les pointeurs. Cela permet de gagner du temps car moins de contrôles sont effectués. Ce mode est disponible en C# avec le mot clé #pragma unmanaged.
Mode Natif (Native) : la CLR exécute directement l'assembleur et ne gère pas la mémoire.
Les objets .NET en C++
Depuis l'apparition de Visual Studio 2005 :
Les pointeurs vers les objets .NET sont exprimés avec le ^ (circonflexe). Ex : System::String^ maChaine = gcnew System::String(« Hello ») maChaine est ici un pointeur vers l'objet string et donc s'utilise avec -> int length = maChaine->Length ;
gcnew = allouer un objet dans le tas managé .NET
Les tableaux ont comme syntax array<TYPE>^
C++ est le seul langage .NET qui permette de mixer les modes Natif et Managed. En utilisant C++, il est possible d'appeler du code natif depuis le monde managed et inversement. Le compilateur est capable de créer une assembly (une DLL) contenant à la fois du code assembleur et du code MSIL. Un wrapper est une classe intermédiaire qui fait la transition entre les mondes managed et natif. Par exemple : pour utiliser une bibliothèque native C++ en C#, il faut ajouter un wrapper en C++ managé qui exposera la classe native.
1
2
3
4
»
Démarrer une discussion
Comment inclure wrapper.h
Chargement ...
Discussion démarée par
lzw1015bean
le 27/03/2008 à 23:55, 1 commentaire(s).
Comment aller chercher une info dans le code C++ (natif) depuis le .NET (managé) biblio de classes
Chargement ...
Discussion démarée par
floflo8731
le 09/06/2008 à 14:49, 1 commentaire(s).
Ecrire un commentaire
Titre
Commentaire
Annuler