Я пытаюсь экспортировать библиотеку классов C# (. NET Core 3.1) для использования в python (3.x).
Моя попытка в C#:
using System;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;
public class testclass
{
[DllExport(ExportName = "add", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I8)]
public int add(int a, int b)
{
return a + b;
}
}
А в Python:
import ctypes
a = ctypes.cdll.LoadLibrary(r"C:\[...]\MyDll.dll")
print(a.add(1,2))
Всегда говорится, что функция «добавить» не найдена. Любые попытки изменить операционную систему (x64, x86) оказались безуспешными.
Я немного запутался, потому что пакет RGiesecke.DllExport создает предупреждение: UnmanagedExports 1.2.7 was restored using .NETFramework [...] instead of the project target framework .NetCoreApp 3.1[...]. This Package may not be fully compatible.
Это причина для моей проблемы? Этот пакет не совместим, и если нет, есть ли другой вариант?
PS: у меня есть доступ к исходным файлам кода c#.
Большое спасибо за ваш help.
С наилучшими пожеланиями