是否可以P / Invoke纯C ++库,还是必须用C包装?
答案 0 :(得分:2)
可以P /调用C ++库,但是您需要使用“depends”来查找受损的方法名称(名称如“@ 0!classname @ classname @ zz”),例如方法使用“ThisCall”调用p / invoke中的约定并将实例的引用作为第一个参数传递(您可以将构造函数的结果存储在IntPtr中)。
答案 1 :(得分:1)
“纯”C ++库的名称会被编译器损坏,因此很难让P / Invoke声明正确。 并且C方法在开头有一个下划线,这在C ++中可能不存在。 并且C ++方法需要将此实例作为第一个参数,您必须自己给它。
我认为您需要将C ++ API包装在C兼容的一系列方法中。