Maison > développement back-end > C++ > Comment puis-je appeler une bibliothèque .NET native depuis Python ?

Comment puis-je appeler une bibliothèque .NET native depuis Python ?

Barbara Streisand
Libérer: 2025-01-05 15:35:40
original
867 Les gens l'ont consulté

How Can I Call a Native .NET Library from Python?

Appel d'une bibliothèque .NET native à partir de Python

Votre objectif est d'exécuter une bibliothèque .NET à partir de votre code Python. Pour y parvenir, nous éviterons d'utiliser IronPython et explorerons plutôt la possibilité d'appeler du code C# depuis Python.

Tout d'abord, vous devrez installer le package NuGet « UnmanagedExports » dans votre projet .NET. Ce package vous permet d'exporter des méthodes .NET sans interopérabilité COM.

Voici un exemple modifié de votre code C# :

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using RGiesecke.DllExport;

class Test
{
    [DllExport("add", CallingConvention = CallingConvention.Cdecl)]
    public static int TestExport(int left, int right)
    {
        return left + right;
    }
}
Copier après la connexion

Une fois compilé, vous pouvez charger le .dll dans votre code Python et accédez aux méthodes exportées :

import ctypes
a = ctypes.cdll.LoadLibrary(source)
a.add(3, 5)
Copier après la connexion

Cela invoquera la méthode TestExport dans votre bibliothèque C#, renvoyant la somme des deux nombres passés à ça.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal