首頁 >後端開發 >C++ >如何從Python呼叫C#函式庫(包括WPF元件)?

如何從Python呼叫C#函式庫(包括WPF元件)?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 21:01:14224瀏覽

How Can I Call a C# Library (Including WPF Components) from Python?

從 Python 呼叫 C# 函式庫

假設您已嘗試使用 IronPython 但遇到困難,您可以考慮從 Python 呼叫 C# 程式碼。如果您有一個包含 WPF 元件的 C# 函式庫,例如以下範例,此方法可能特別有用:

`csharp
using System.Runtime.InteropServices;
using System.EnterpriseServices;

命名空間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();
   }
}

}
`

要從 Python 呼叫此 C# 程式碼,您可以使用 NuGet 套件「UnmanageExports」。安裝此套件,您可以匯出 C# 程式碼,而無需建立 COM 層。以下是如何執行此操作的範例:

`csharp
使用 System;
使用 System.Collections.Generic;
使用 System.Linq;
使用 System.Runtime。 InteropServices;
使用System.Text;
使用System.Threading.Tasks;
使用RGiesecke.DllExport;

類測試
{

[DllExport("add", CallingConvention = CallingConvention.Cdecl)]
public static int TestExport(int left, int right)
{
    return left + right;
}

}
`

導出後C#程式碼,您可以載入DLL 並呼叫公開的方法Python:

`python
import ctypes
a = ctypes.cdll.LoadLibrary(source)
a.add(3, 5)
`

這個方法提供了一個從Python 程式碼呼叫C#庫(包括使用 WPF 元件的庫)的便捷方法。

以上是如何從Python呼叫C#函式庫(包括WPF元件)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn