Ctypes create_string_buffer提供raise TypeError(init)

2024-09-28 03:17:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用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函数编写一个小包装器。在


Tags: path函数代码类型stringbuffer错误create
1条回答
网友
1楼 · 发布于 2024-09-28 03:17:54

我很困惑。testUpdate(p_path)应该调用C函数吗?它看起来像是递归地调用python代码(使用错误的参数类型)。尝试重命名Python函数。在

顺便说一句,你的C代码有问题。我想你想要的是

^{1}$

相关问题 更多 >

    热门问题