Jam*_*mie 8 .net c++ unmanaged managed wrapper
如标题中所述,我希望我的旧C++库在托管.NET中运行.我想到了两种可能性:
1)我可能尝试使用/ clr编译库并尝试"It Just Works"方法.
2)我可能会将托管包装器写入非托管库.
首先,我想让我的库快速工作,就像在非托管环境中一样.因此,我不确定第一种方法是否会导致性能大幅下降.但是,实现它似乎更快(不是一个正确的词:-))(假设它对我有用).
另一方面,我想到了编写包装器时可能出现的一些问题(例如,如何包装一些STL集合(vector
例如)?)我想写一个与非托管C++驻留在同一个项目中的包装器 - 是合理的方法(例如MyUnmanagedClass
,MyManagedClass
在同一个项目中,第二个包装另一个)?
你会在那个问题上提出什么建议?哪种解决方案能够让我更好地了解生成的代码?
提前感谢您的任何建议和线索!
干杯
首先,忘记托管C++.使用C++/CLI.
不同之处在于托管C++是微软首次尝试将C++扩展到与.NET协同工作,老实说,它是各种可怕的.
所以他们放弃了,并设计了C++/CLI,效果更好.
其次,如果将它编译为C++/CLI,那么有效的C++代码应该可以工作,所以这看起来似乎是显而易见的方法.
当然,为了将您的C++类型公开给.NET程序集,您将不得不以任何方式编写一些包装器.对于STL类型,您可以查看Microsoft的STL/CLR库.
但一般来说,只需添加/ cli开关,将代码编译为C++/CLI,然后添加所需的包装器.没有理由为什么你的代码会神奇地变得更慢或什么.
归档时间: |
|
查看次数: |
8667 次 |
最近记录: |