比如,C模块中有一个接口:short dc_cpuapdu_hex(HANDLE icdev, unsigned char slen, char *sendbuffer, unsigned char *rlen, char *databuffer);
其中,rlen和databuffer是出参,
请问,这两个参数如何返给py层?
麻烦给个C模块实现和py层调用的例子,谢谢!
离线
目前 pikascript 不支持多值返回,如果需要返回多个值,可以使用对象的属性 api,将返回值保存进对象的属性中,再依次取出。
例如:
pika 的C模块py中:
# python
class Test(TinyObj):
def test(a:int, b:float):
pass
pika 的C模块.c 中:
/* C */
void Test_test(PikaObj* self, int a, float b){
int res1;
float res2;
/* do something */
obj_setInt(self, "c", res1);
obj_setFloat(self,"d", res2);
}
Python 调用中:
mytest = Test()
a = 1
b = 2
mytest.test(a,b)
res1 = mytest.c
res2 = mytest.d
离线