gpt4 book ai didi

python - 从 SWIG 生成的 Python 调用 C 函数,输出为 char *

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:39 26 4
gpt4 key购买 nike

我是 SWIG 的新手,如果我的问题已记录在案,请随时发布链接,我会仔细阅读。

我有一个采用以下形式的 C 函数:

int myFunc(char *output, const char *input)

我生成了 Python 包装器,并尝试调用此函数(在 Python 中):

m=""
n="valid input string"
myFunc(m,n)

这只是打印 (int) 返回码,m 仍然是 ""。我做错了什么?

谢谢!

最佳答案

来自SWIG manual section 8.3.4 :

如果您的 C 函数声明如下:

int myFunc(char *myOutput, const char *myInput);

然后您可以使用以下 SWIG 接口(interface)语法:

%include "cstring.i"

%cstring_bounded_output(char *myOutput, 1024);

int myFunc(char *myOutput, const char *myInput);

这应该导致 Python 包装函数采用单个字符串参数 (myInput) 并返回一个整数元组(C 函数的返回值)和一个字符串 (myOutput)。在此示例中,字符串的内存将由 SWIG 分配,长度为 1024 字节。

关于python - 从 SWIG 生成的 Python 调用 C 函数,输出为 char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16655509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com