如标题所述,我希望将我的旧C++库工作在托管的.NET环境中。我想到了两种可能性:
1)我可以尝试使用/clr编译库,并尝试“一切正常”的方法。
2)我可以编写一个托管包装器来操作非托管库。
首先,我希望我的库能够快速工作,就像在非托管环境中一样。因此,我不确定第一种方法是否会导致性能大幅下降。但是,它似乎更快地实现(假设对我有效)。
另一方面,我想到了一些在编写包装器时可能出现的问题(例如,如何包装一些STL集合(例如
1)我可以尝试使用/clr编译库,并尝试“一切正常”的方法。
2)我可以编写一个托管包装器来操作非托管库。
首先,我希望我的库能够快速工作,就像在非托管环境中一样。因此,我不确定第一种方法是否会导致性能大幅下降。但是,它似乎更快地实现(假设对我有效)。
另一方面,我想到了一些在编写包装器时可能出现的问题(例如,如何包装一些STL集合(例如
vector
)?)。我考虑写一个与非托管C ++代码位于同一项目中的包装器-这是一个合理的方法吗(例如,在同一项目中有 MyUnmanagedClass 和 MyManagedClass ,后者包装前者)?
在这个问题上,您会提出什么建议?哪种解决方案会给我带来更好的代码性能?
感谢您提前提供的任何建议和线索!
干杯
/clr:pure
,这意味着您必须基本上重写所有内容。 - Billy ONeal