Ela*_*lad 11 .net interop c++-cli
在我们的项目中,我们有大量的本机C++代码,我们希望从一个用.Net编写的全新UI层重用它.
我想在这个问题上使用C++/CLI,我已经看到通过使用瘦托管类包装本机类,有一种非常直接且相当技术性的方法.我希望能够找到一个自动完成这项任务的工具,因为在我看来,如果没有很多必要的"人类"思考,我真的是一个技术问题.
有这样的工具使用显式p/invoke - 请参阅http://www.swig.org/Doc1.3/CSharp.html.问题是显式p/invoke更麻烦,性能更低.
有没有人熟悉这样的工具?
这种工具还没有固有的原因吗?
p/invoke效率较低的原因是因为它必须是任何函数的非常通用的接口,只知道签名.你假设的包装器生成器没有更好的表现.
另一方面,编写自定义包装类的开发人员有更多关于一起使用的函数的信息,等等,因此可以避免很多缓慢和不必要的转换,例如通过直接在包装器中存储值而不是将它们转换为.NET友好格式.
所以这并不是说这样的工具是不可能的,它只有很少甚至没有好处.如果你关心性能,你可以编写自己的包装器,完成生命周期管理智能指针等.
当然,p/invoke只提供对裸函数的访问.这是SWiG应该有用的地方,通过裸导出函数公开任何C++类接口.
我确实在一个可能正在寻找的工具上找到了一个潜在客户,尽管它听起来非常狭窄:
| 归档时间: |
|
| 查看次数: |
8240 次 |
| 最近记录: |