我试图使用ctypes将Python字符串传递给c函数(DLL)。函数需要一个常量字符*。我正在使用create_string_buffer,但它返回一个错误: 引发类型错误(初始化) 类型错误:
我的python代码非常简单:
testUpdate = myDll['testUpdate']
def testUpdate(Path):
p_path = ctypes.create_string_buffer(Path)
print ctypes.sizeof(p_path), repr(p_path.raw)
print repr(p_path.value)
testUpdate(p_path)
testUpdate.restype = ctypes.c_char
我的C代码更简单:
^{pr2}$我看到这个帖子: create_string_buffer throwing error TypeError: str/bytes expected instead of str instance 但没用。有人能帮忙吗?在
我使用的是python2.7。在
为了避免混淆,我所要做的就是给一个DLL路径(使用Python)。该DLL将打开路径所指向的文件并执行其魔术。所以我只是想为现有的C函数编写一个小包装器。在
我很困惑。
testUpdate(p_path)
应该调用C函数吗?它看起来像是递归地调用python代码(使用错误的参数类型)。尝试重命名Python函数。在顺便说一句,你的C代码有问题。我想你想要的是
^{1}$相关问题 更多 >
编程相关推荐