试图访问C++;在windows上使用python ctypes的dll中的函数 我有一个C++函数,它接受两个参数——空隙*和无符号long *,它返回一个未签名的长整数。 加载dll后,我试图访问此函数,但它抛出了一个错误,提示:
ValueError:调用的过程没有足够的参数(8字节 缺失)或错误的呼叫约定 下面是相同的python代码:试图访问C++;在windows上使用python ctypes的dll中的函数 我有一个C++函数,它接受两个参数——空隙*和无符号long *,它返回一个未签名的长整数。 加载dll后,我试图访问此函数,但它抛出了一个错误,提示:,python,c++,windows,dll,ctypes,Python,C++,Windows,Dll,Ctypes,ValueError:调用的过程没有足够的参数(8字节 缺失)或错误的呼叫约定 下面是相同的python代码: import ctypes from ctypes import cdll lib1 = cdll.LoadLibrary("Sample1.dll") i = ctypes.c_void_p j = ctypes.c_ulong() lib1.Funct1.argtypes = [ctypes.c_void_p,ctypes.POINTER(ctypes.c_ulong)]
import ctypes
from ctypes import cdll
lib1 = cdll.LoadLibrary("Sample1.dll")
i = ctypes.c_void_p
j = ctypes.c_ulong()
lib1.Funct1.argtypes = [ctypes.c_void_p,ctypes.POINTER(ctypes.c_ulong)]
lib1.Funct1.restype = ctypes.c_ulong
res1 = lib1.Funct1(None,ctypes.byref(j))
print res1
尝试了各种各样的例子,但没有多大帮助
有人能为上述问题提供解决方案吗
谢谢
PAVANA < /P>是否可以复制<代码> C++的签名函数> /<代码>?cType支持<代码> CDECL < /Cuff>调用约定(调用方清理堆栈),通过<代码> CDLL< /COD>和<代码> STDCALL> <代码>(CALLY清理堆栈),通过<代码> WLLLL>/代码>。请尝试
lib1=ctypes.windell(“Sample1.dll”)
。谢谢您的帮助。温德尔工作了,我能够访问加载的dll中的函数!您可以发布“代码+ >签名功能> <代码> >的C++副本吗?cType支持<代码> CCDL> <代码>调用约定(调用方清理堆栈),通过<代码> CDLL< /COD>和<代码> STDCALL> <代码>(CALLY清理堆栈),通过<代码> WLLLL>/代码>。请尝试lib1=ctypes.windell(“Sample1.dll”)
。谢谢您的帮助。温德尔工作了,我能够访问加载的dll中的函数!