是否有推荐的方法用c ++ cli包装本机c ++库?
答案 0 :(得分:6)
不确定是否适合所有尺寸,但是,它主要是一个机械过程。您的ref类包装器应该声明一个私有成员,它是指向您的本机C ++类的指针。在构造函数中创建实例。你需要一个析构函数和终结器来再次删除该实例。
然后,对于本机C ++类中的每个函数,编写一个托管版本。这几乎总是一对一的调用,你只需调用相应的本机方法,让C ++ Interop转换参数。有时您必须编写一些粘合代码来将托管参数转换为其本机版本,特别是如果您的本机方法使用8位char *或结构参数。
您会在my answer here的代码中找到标准模式。我还应该提到SWIG,一种可以自动化的工具。不确定它有多好,从不自己使用它。