Maison >développement back-end >C++ >Comment puis-je appeler une bibliothèque C# (y compris des composants WPF) à partir de Python ?
Appel de la bibliothèque C# depuis Python
En supposant que vous avez essayé d'utiliser IronPython mais que vous avez rencontré des difficultés, vous pouvez plutôt envisager d'appeler votre code C# depuis Python. Cette approche peut être particulièrement utile si vous disposez d'une bibliothèque C# qui inclut des composants WPF, comme l'exemple suivant :
`csharp
using System.Runtime.InteropServices;
using System.EnterpriseServices;
espace de noms DataViewerLibrary
{
public interface ISimpleProvider { [DispIdAttribute(0)] void Start(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class PlotData : ServicedComponent, ISimpleProvider { public void Start() { Plot plotter = new Plot(); plotter.ShowDialog(); } }
}
`
Pour appeler ce code C# depuis Python, vous pouvez utiliser le package NuGet « UnmanagedExports ». En installant ce package, vous pouvez exporter le code C# sans créer de couche COM. Voici un exemple de la façon dont vous pouvez procéder :
`csharp
en utilisant System ;
en utilisant System.Collections.Generic;
en utilisant System.Linq;
en utilisant System.Runtime. InteropServices;
en utilisant System.Text;
en utilisant System.Threading.Tasks;
using RGiesecke.DllExport;
class Test
{
[DllExport("add", CallingConvention = CallingConvention.Cdecl)] public static int TestExport(int left, int right) { return left + right; }
}
`
Une fois que vous avez exporté le code C#, vous pouvez charger la DLL et appeler les méthodes exposées depuis Python :
`python
import ctypes
a = ctypes.cdll.LoadLibrary(source)
a.add(3, 5)
`
Ceci La méthode fournit une approche pratique pour appeler des bibliothèques C#, y compris celles qui utilisent des composants WPF, à partir du code Python.
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!