如何在 ctypes 库 python 中获取我的 C# dll 的依赖项?
how to get dependency of my C# dll in ctypes library python?
我想 运行 在 python 应用程序中使用 .net framework 4.7 的 C# dll。
我在 dll 中使用 dllExport nuget 作为我的方法,因为 ctypes 以这种方式访问我的方法。
示例:
using System.Runtime.InteropServices;
namespace MyNameSpace
{
public class MyClass
{
[DllExport("MyMethod", CallingConvention = CallingConvention.StdCall)]
public static int MyMethod(int a,int b)
{
return a + b;
}
}
}
在python中:
def myFunction():
Dllpath = os.path.join("dll folder directory")
os.add_dll_directory(Dllpath + r"myDll.dll")
# WinDll used just windows os, in Linux is different
lib = WinDLL(Dllpath + r"myDll.dll")
lib.MyMethod(12,17)
这是工作。
但是当我在我的 dll 中使用其他库 (dll) 时,我得到这个错误:
[WinError -532462766] Windows Error 0xe0434352
我猜这个错误是因为我的 dll 依赖性问题。
如何解决这个错误?
您也应该将“DllExport”放在您在所有依赖项中调用的所有函数之上。
我想 运行 在 python 应用程序中使用 .net framework 4.7 的 C# dll。 我在 dll 中使用 dllExport nuget 作为我的方法,因为 ctypes 以这种方式访问我的方法。 示例:
using System.Runtime.InteropServices;
namespace MyNameSpace
{
public class MyClass
{
[DllExport("MyMethod", CallingConvention = CallingConvention.StdCall)]
public static int MyMethod(int a,int b)
{
return a + b;
}
}
}
在python中:
def myFunction():
Dllpath = os.path.join("dll folder directory")
os.add_dll_directory(Dllpath + r"myDll.dll")
# WinDll used just windows os, in Linux is different
lib = WinDLL(Dllpath + r"myDll.dll")
lib.MyMethod(12,17)
这是工作。
但是当我在我的 dll 中使用其他库 (dll) 时,我得到这个错误:
[WinError -532462766] Windows Error 0xe0434352
我猜这个错误是因为我的 dll 依赖性问题。
如何解决这个错误?
您也应该将“DllExport”放在您在所有依赖项中调用的所有函数之上。