功能不能正常工作

时间:2014-11-20 02:42:59

标签: python c++ c python-3.x ctypes

注意:我有一大堆代码,因此它目前存储在here

所以,我有这两个文件。 CPP文件是C .so库的一部分,它使用ctypes与Python集成。但是,当我运行test.py时,即使我指定了返回类型

,它也不会打印任何内容
interfaceLib.concatString()

到变量" text",然后打印。

1 个答案:

答案 0 :(得分:0)

ctypes中的函数调用默认返回一个int。您需要指定库函数的重定义类型。请尝试以下方法:

from ctypes import CDLL, c_char_p

interfaceLib = CDLL('Shared_Lib/bin/Library/libShared_Lib.so')

interfaceLib.test()
str1 = "H"
str2 = "I"
interfaceLib.concatString.argtypes = [c_char_p, c_char_p]
interfaceLib.concatString.restype = c_char_p
text = interfaceLib.concatString(str1.encode('utf-8'), str2.encode('utf-8'))
print(text)