ホームページ >バックエンド開発 >C++ >Python から C# ライブラリ (WPF コンポーネントを含む) を呼び出すにはどうすればよいですか?

Python から C# ライブラリ (WPF コンポーネントを含む) を呼び出すにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 21:01:14213ブラウズ

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();
   }
}

}
`

この C# コードを Python から呼び出すには、NuGet パッケージ「UnmanagedExports」を利用できます。このパッケージをインストールすると、COM レイヤーを作成せずに C# コードをエクスポートできます。これを行う方法の例を次に示します。

`csharp
System を使用;
System.Collections.Generic を使用;
System.Linq を使用;
System.Runtime を使用します。 InteropServices;
System.Text の使用;
使用System.Threading.Tasks;
using RGiesecke.DllExport;

class Test
{

[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)
`

Thisメソッドは、Python コードから C# ライブラリ (WPF コンポーネントを使用するライブラリを含む) を呼び出すための便利なアプローチを提供します。

以上がPython から C# ライブラリ (WPF コンポーネントを含む) を呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。