c ++/cli包装问题

use*_*949 2 c++-cli

是否有推荐的方法用c ++ cli包装本机c ++库?

Han*_*ant 6

不确定是否适合所有尺寸,但是,它主要是一个机械过程.您的ref类包装器应该声明一个私有成员,它是指向您的本机C++类的指针.在构造函数中创建实例.你需要一个析构函数和一个终结器来再次删除该实例.

然后,对于本机C++类中的每个函数,您编写它的托管版本.这几乎总是一对一的调用,你只需调用相应的本机方法,让C++ Interop转换参数.有时您必须编写一些粘合代码来将托管参数转换为其本机版本,特别是如果您的本机方法使用8位char*或结构参数.

你会在我的答案中找到代码中的标准模式.我还应该提到SWIG,一种可以自动化的工具.不知道它有多好,从来没有用过它.