请帮助我将下面的 c++ 代码行转换为 ctypes python:
Ret = openFcn(&Handle, "C:\\Config.xml");
下面是每个的声明:
typedef uint16_t (* OpenDLLFcnP)(void **, const char *);
OpenDLLFcnP openFcn = NULL;
openFcn = (OpenDLLFcnP) myLibrary.resolve("Open");
void *Handle = NULL;
最佳答案
myLibrary.resolve
未定义,但您需要(未经测试)的一般代码是:
import ctypes
dll = ctypes.CDLL('your.dll')
Open = dll.Open
Open.argtypes = [ctypes.POINTER(ctypes.c_void_p),ctypes.c_char_p]
Open.restype = ctypes.c_uint16
Handle = ctypes.c_void_p()
result = Open(ctypes.byref(Handle),'c:\\Config.xml')
假设您有一个名为 your.dll
的 DLL,其中包含您要调用的函数 Open
。
关于python - 如何在 ctypes python 中将 char 指针作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959220/