有人用过SharpGen (来自 SharpDX )用于在 SharpDX 本身之外的其他项目中生成包装器?我不想决定是使用 SharpGen 还是 Swig为 C++ 库生成包装器。
SharpGen 创建的生成代码似乎很快(因为 SharpDX 被称为托管世界中最快的 DirectX-Wrapper)。但 SharpGen 的文档并不多。另一方面,Swig 有更好的文档记录,但可能没有像 SharpGen 那样优化速度,而且我不需要多语言生成功能(此时只需要 C#/.Net)。有什么经验可以分享吗?
最佳答案
SWIG 是一个有据可查的通用互操作包装器,而 SharpGen 确实是 SharpDX 中使用的内部工具,专门设计用于 C++ COM 接口(interface)(或具有虚拟纯方法的 C++ 类)。虽然 SWIG 需要编译 C++ stub ,但 SharpDX 完全从 .NET 执行整个互操作(因此您可以享受 AnyCPU 的优势)。 SharpGen 尚未打包以便在 SharpDX 构建之外轻松使用,但该工具本身可以在没有 SharpDX 的情况下使用,尽管它需要深入研究现有映射文件以了解如何配置它(示例 here )
除非您有一些特定要求,否则我会坚持使用 SWIG,因为它有详细记录。 SharpGen 更适合已经在使用 SharpDX 并希望访问其自己的自定义 C++ COM 对象的开发人员。
关于.net - SharpGen 对于 SharpDX 以外的其他项目有用吗?还是我应该使用 SWIG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444386/