Невозможно импортировать DLL в python. «Невозможно найти ошибку сборки» - PullRequest
1 голос
/ 14 января 2020

У меня есть несколько 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")

Почему я не могу сделать это здесь ? Заранее спасибо.

...