Appeler le code C en C#
Les appels multilingues, en particulier l'appel de bibliothèques externes à partir de langages .NET (tels que C#) et de code écrit dans différents langages de programmation, sont souvent un défi. Cet article explique comment appeler du code C en C#, en particulier à partir de fichiers de bibliothèque de codes (*.dll).
Solution : assemblage de wrapper C/CLI
Une solution efficace consiste à utiliser C/CLI, une extension de langage qui connecte C et le .NET Framework. C/CLI permet une interaction transparente entre le code C non managé et le code managé tel que C#.
Créez un assembly wrapper C/CLI pour exposer les fonctionnalités du code C requis. Ce wrapper agit comme intermédiaire, permettant au code C# d’appeler l’implémentation C comme s’il s’agissait de code C#.
Exemple : Bibliothèque réseau RakNet
Pour illustrer cette approche, pensez à utiliser la bibliothèque réseau RakNet. Compilez le code C/CLI suivant à l'aide du commutateur /clr :
<code class="language-c++">#include "NativeType.h" public ref class ManagedType { NativeType* NativePtr; public: ManagedType() : NativePtr(new NativeType()) {} ~ManagedType() { delete NativePtr; } void ManagedMethod() { NativePtr->NativeMethod(); } }; </code>
Vous pouvez créer un assembly managé qui peut être référencé dans le code C#. Cela vous permet d'accéder aux fonctionnalités C via la classe ManagedType :
<code class="language-c#">ManagedType mt = new ManagedType(); mt.ManagedMethod();</code>
Résumé
En tirant parti de C/CLI, vous pouvez étendre efficacement les fonctionnalités du langage .NET en interagissant avec le code C. Cette approche simplifie l'intégration de bibliothèques externes et permet une interaction fluide entre différents environnements de programmation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!