用Ruby的FFI封装C函数
Wrapping a C function with FFI for Ruby
我确实很难理解C和C++,但我试图用FFI包装C++函数(外部为"C"),但不太理解语法。
外部C代码的形式是:
Client *create_client(Address *address, const char * const foo){
//make stuff
}
具体来说,我的问题是,如何使用FFI在Ruby中封装它?我认为构造函数有两个指针,所以它的形式是:
attach_function :create_client, [:pointer, :pointer], :pointer
但是,另一方面,const char*const foo让我很困惑——它应该被视为这样的字符串吗:
attach_function :create_client, [:pointer, :string], :pointer
谢谢。
attach_function :create_client, [:pointer, :string], :pointer
const char *
意味着它是一个c字符串,后面的const
部分只与您调用的函数有关。请参阅此了解更多详细信息。你包装的函数在我看来是正确的,但我认为你需要的不仅仅是这个函数,它会更复杂。
外国金融机构维基在这里有一些好的信息。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 将可变参数函数的参数封装在类实例中
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 从封装在对象中的函数 C++ 返回时为空的列表
- 如何在类中封装C/C++套接字发送和接收函数?
- 类C++友元函数无法访问封装的类
- C++实用程序,用于将长开关语句转换为封装开关案例阶梯的简洁函数调用
- 如何使用提升范围将自定义迭代器封装在函数中
- 在封装指针的类中,移动语义无意中被复制构造函数取代
- 用Cython封装具有OpenCV参数的C++函数
- 使用Boost::Python封装纯虚拟函数
- 当使用另一个函数封装 printf 和 vfprintf 时,这种差异的原因是什么?
- 如何封装std::函数
- 非好友、非成员函数增加了封装
- 警告使用封装函数
- 在函数调用中封装std::cout
- 如何在haskell中封装对象构造函数和析构函数
- 用Ruby的FFI封装C函数
- 如何使用SWIG将C++工厂方法封装在Python_init__函数中
- 将许多C调用函数封装到单个实现中