试图访问C++;在windows上使用python ctypes的dll中的函数 我有一个C++函数,它接受两个参数——空隙*和无符号long *,它返回一个未签名的长整数。 加载dll后,我试图访问此函数,但它抛出了一个错误,提示:

试图访问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)]

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)]

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中的函数!