我想知道用C ++编写包含大量库的最佳方法是什么,以便在C#中访问它。
之前我曾与interop合作过,我喜欢IJW。但我不确定如何使用庞大的库实现这种方法。我想知道是否有任何模式可供使用,否则我只需要编写一个包含在c ++库中存在的每个类的包装器,这个类是不可管理的。
另外,我不能只为图书馆提供一个单一的立面,因为它非常大,而且在这一点上势不可挡,所以任何想法都会受到高度赞赏。
答案 0 :(得分:0)
如果表现最受关注,请留下IJW。如果你必须在代码中编写包装类或者更喜欢可读性,我建议你创建COM包装器,因为IDE向导可以帮助你生成代码,本地客户端也可以使用COM。这就是微软为Office和IE公开其API的方式。
答案 1 :(得分:0)
我经历了一个类似于你所描述的过程。在我们的情况下,没有简单的方法来包装类(IJW对于大型C ++库来说不是一个可行的解决方案),所以我们 包装每个类。
我们首先编写了一个包装器,首先是我们需要在应用程序中使用的核心类,并根据需要为其他类添加包装器。这些事情特别有助于我们:
涉及到很多工作,但是为每个类编写一个包装器是可管理的,但(显然)只有在获得足够的好处时才值得。 “手工”编写包装也使我们对互操作进行了细粒度的控制,这对我们项目的成功至关重要。