作者:虚坏叔叔
早餐店不会开到晚上,想吃的人早就来了!😄
Python
通过create_string_buffer
给c语言
传递可修改字符串
一、测试字符串在c语言中修改后 会否影响Python
string
和byte
在Python
中不支持修改,但是,如果传递到c
语言中要能不能被修改,实测时发现是可以修改的。
可以来修改试一试,只针对于byte
类型,
在Python
中打印提示:
print(“in python str1=”, str1)
在C++
中修改传递过来的字符:
str[0] = ‘@’;
运行 可以发现第一个字符被修改了。
所以,这只能是约定,按照默认的约定,Python
中不支持被修改,那么在C++
中,也不应该被修改。这是约定,起不到强制作用。
二、明示调用 create_string_buffer,字符串可被改变
按照约定,如果你想让传递进去的字符串可以被修改。
在Python
中可以调用函数:
#定义需要更改
buf = create_string_buffer(100)
lib.TestStringBuffer(buf)
print(“in python buf=”, buf.raw, buf.value, len(buf))
在C++
添加一个可以被修改的函数:
运行
可以看到,流
内容
长度
都输出来了
三、总结
- 本文使用QT创建了项目,并且这个项目也能在Visual studio中正常运行 。
- 下节课会讲解QT源码方面的知识