我有一个C ++ DLL库。一个功能如下所示。
Python中的DLL导入是正确的。
self.age = aDecoder.decodeObject(forKey: "age") as? Int ?? aDecoder.decodeInteger(forKey: "age")
事实上,我已经尝试了很多方法来传递参数。我知道C ++ int _ParseLogin2Resp(const std::string& username,
const std::string& password,
char szErr[1024]);
和std::string
之间的区别。
1.使用c_char_p()和byref()
char *
2.使用create_string_buffer()
username = ctypes.c_char_p("username")
_ParseLogin2Resp(ctypes.byref(username),...)
但是函数ERROR返回
用户名或密码为空。
所以我找不到任何解决方案来将字符串参数传递给我的函数。
我的问题是。
我是否有可能传递正确的参数来按预期调用我的函数,或者我必须重写我的dll库以使函数正常工作?
答案 0 :(得分:0)
Python doc says ctypes provides C compatible data types, it is better to use c style API interface in your DLL.