У меня есть несколько C# программ, которые я пытаюсь преобразовать в python. Я ничего не знаю о C#, я должен импортировать DLL (и) и использовать функции, используемые в C# коде. Я успешно импортировал DLL в другие коды, но не могу импортировать в этот конкретный код.
Это код C#, к которому я пытаюсь обратиться:
namespace Grab
{
public partial class Form1 : Form
{
[DllImport("kernel32.dll")]
public static extern void CopyMemory(IntPtr Destination, IntPtr Source, int Length);
private const string SdkFilePath = @".\xyz.dll";
[DllImport(SdkFilePath, CallingConvention = CallingConvention.StdCall)]
public static extern UInt32 LP_GetLibVersion();
Что я делаю в Python:
import clr
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "\\DLL\\") #Load DLL file
clr_iow = clr.AddReference("xyz")
Программа C# прекрасно работает. Но когда я пытаюсь запустить код python, я получаю эту ошибку:
Traceback (most recent call last):
File "test.py", line 7, in <module>
clr_iow = clr.AddReference("xyz")
System.IO.FileNotFoundException: Unable to find assembly 'xyz'.
at Python.Runtime.CLRModule.AddReference(String name)
Я пытался изменить версии pytho nnet, python. Разрешения на чтение также предоставляются файлу DLL. Другие библиотеки DLL в том же каталоге импортируются. Только этот конкретный дает эту ошибку. Есть ли другой способ импортировать этот? Также я не могу найти 'kernel.dll', нужно ли импортировать ядро? Как я могу импортировать это тоже? В других C# программах DLL были импортированы просто:
using abc;
А затем в python:
import clr
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "\\DLL\\") #Load DLL file
clr_iow = clr.AddReference("abc")
Почему я не могу сделать это здесь ? Заранее спасибо.