我试图在我的代码中使用第三方DLL,并且我必须使用Python从该DLL调用函数. 根据文档,DLL只有4个函数,并且这些函数都不能从我的Python代码中调用. 我已经try 了x86和x64DLL(使用相应的Python发行版).我try 了Python3.7、3.9、3.10和3.11,所有这些都不能调用任何函数.
from ctypes import cdll
sdk = cdll.LoadLibrary("./Library.dll")
get_data = sdk.sdk_get_data
print(get_data)
这将返回一个错误:
File "D:\sandbox\еуые.py", line 7, in <module>
get_data = sdk.sdk_get_data
File "C:\Python39-64\lib\ctypes\__init__.py", line 387, in __getattr__
func = self.__getitem__(name)
File "C:\Python39-64\lib\ctypes\__init__.py", line 392, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'sdk_get_data' not found
我使用了Lucasg的Dependencies工具来确保文档中的函数存在于DLL中,下面是输出:
1 (0x0001), (0x), int __cdecl sdk_get_data(char * __ptr64,int,unsigned short * __ptr64,unsigned char * __ptr64), 0x00001b30, Microsoft
如何从此DLL调用函数?也许用C++编写包装器是必要的?